Module Name:    src
Committed By:   mrg
Date:           Thu Aug  3 08:03:19 UTC 2023

Modified Files:
        src/external/bsd/libevent/dist: event.c
        src/usr.bin/rdist: expand.c
        src/usr.sbin/powerd: powerd.c

Log Message:
avoid having addresses of local variable exist after a function returns.

found by GCC 12.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/bsd/libevent/dist/event.c
cvs rdiff -u -r1.18 -r1.19 src/usr.bin/rdist/expand.c
cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/powerd/powerd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/libevent/dist/event.c
diff -u src/external/bsd/libevent/dist/event.c:1.5 src/external/bsd/libevent/dist/event.c:1.6
--- src/external/bsd/libevent/dist/event.c:1.5	Wed Apr  7 03:36:48 2021
+++ src/external/bsd/libevent/dist/event.c	Thu Aug  3 08:03:19 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: event.c,v 1.5 2021/04/07 03:36:48 christos Exp $	*/
+/*	$NetBSD: event.c,v 1.6 2023/08/03 08:03:19 mrg Exp $	*/
 
 /*
  * Copyright (c) 2000-2007 Niels Provos <pro...@citi.umich.edu>
@@ -28,7 +28,7 @@
  */
 #include "event2/event-config.h"
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: event.c,v 1.5 2021/04/07 03:36:48 christos Exp $");
+__RCSID("$NetBSD: event.c,v 1.6 2023/08/03 08:03:19 mrg Exp $");
 #include "evconfig-private.h"
 
 #ifdef _WIN32
@@ -1382,6 +1382,7 @@ event_signal_closure(struct event_base *
 			return;
 		}
 	}
+	ev->ev_pncalls = NULL;
 }
 
 /* Common timeouts are special timeouts that are handled as queues rather than

Index: src/usr.bin/rdist/expand.c
diff -u src/usr.bin/rdist/expand.c:1.18 src/usr.bin/rdist/expand.c:1.19
--- src/usr.bin/rdist/expand.c:1.18	Tue Jul 14 21:05:34 2009
+++ src/usr.bin/rdist/expand.c	Thu Aug  3 08:03:19 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: expand.c,v 1.18 2009/07/14 21:05:34 apb Exp $	*/
+/*	$NetBSD: expand.c,v 1.19 2023/08/03 08:03:19 mrg Exp $	*/
 
 /*
  * Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)expand.c	8.1 (Berkeley) 6/9/93";
 #else
-__RCSID("$NetBSD: expand.c,v 1.18 2009/07/14 21:05:34 apb Exp $");
+__RCSID("$NetBSD: expand.c,v 1.19 2023/08/03 08:03:19 mrg Exp $");
 #endif
 #endif /* not lint */
 
@@ -141,6 +141,10 @@ expand(struct namelist *list, int wh)
 		printf("expanded list = ");
 		prnames(list);
 	}
+	sortbase = NULL;
+	eargv = NULL;
+	path = tpathp = pathp = NULL;
+	lastpathp = NULL;
 	return(list);
 }
 

Index: src/usr.sbin/powerd/powerd.c
diff -u src/usr.sbin/powerd/powerd.c:1.20 src/usr.sbin/powerd/powerd.c:1.21
--- src/usr.sbin/powerd/powerd.c:1.20	Mon Oct 12 16:54:43 2020
+++ src/usr.sbin/powerd/powerd.c	Thu Aug  3 08:03:19 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: powerd.c,v 1.20 2020/10/12 16:54:43 roy Exp $	*/
+/*	$NetBSD: powerd.c,v 1.21 2023/08/03 08:03:19 mrg Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -189,6 +189,7 @@ run_script(const char *argv[])
 		if (access(path, R_OK|X_OK) == 0) {
 			int status;
 			pid_t pid;
+			const char *orig_argv0 = argv[0];
 
 			argv[0] = path;
 
@@ -199,13 +200,16 @@ run_script(const char *argv[])
 					(void)fprintf(stderr, " %s", argv[j]);
 				(void)fprintf(stderr, "\n");
 			}
-			if (no_scripts != 0)
+			if (no_scripts != 0) {
+				argv[0] = orig_argv0;
 				return;
+			}
 
 			switch ((pid = vfork())) {
 			case -1:
 				powerd_log(LOG_ERR, "fork to run script: %s",
 				    strerror(errno));
+				argv[0] = orig_argv0;
 				return;
 
 			case 0:
@@ -233,6 +237,7 @@ run_script(const char *argv[])
 				}
 				break;
 			}
+			argv[0] = orig_argv0;
 			
 			return;
 		}

Reply via email to