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

found by GCC 12.
This commit is contained in:
mrg 2023-08-03 08:03:19 +00:00
parent 690d517445
commit 2bd8f802e4
3 changed files with 16 additions and 6 deletions

View File

@ -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 <provos@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 *base, struct event *ev)
return;
}
}
ev->ev_pncalls = NULL;
}
/* Common timeouts are special timeouts that are handled as queues rather than

View File

@ -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);
}

View File

@ -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;
}