diff options
author | 2021-01-19 16:48:20 +0000 | |
---|---|---|
committer | 2021-01-19 16:48:20 +0000 | |
commit | 31525baa67bd4c08bbf6c2ed9578bb58e68399bc (patch) | |
tree | 556f0bc980b7de6bd4812afb9da20a7cb3aac532 | |
parent | Prevent an overflow in inet_net_pton(3) when the passed in buffer is (diff) | |
download | wireguard-openbsd-31525baa67bd4c08bbf6c2ed9578bb58e68399bc.tar.xz wireguard-openbsd-31525baa67bd4c08bbf6c2ed9578bb58e68399bc.zip |
No need for a global slaacd_process; unbreaks -fno-common.
Problem reported by mortimer
-rw-r--r-- | sbin/slaacd/engine.c | 7 | ||||
-rw-r--r-- | sbin/slaacd/frontend.c | 7 | ||||
-rw-r--r-- | sbin/slaacd/slaacd.c | 16 | ||||
-rw-r--r-- | sbin/slaacd/slaacd.h | 14 |
4 files changed, 17 insertions, 27 deletions
diff --git a/sbin/slaacd/engine.c b/sbin/slaacd/engine.c index 52380f64439..2d75a4b7990 100644 --- a/sbin/slaacd/engine.c +++ b/sbin/slaacd/engine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: engine.c,v 1.57 2020/10/30 18:30:26 florian Exp $ */ +/* $OpenBSD: engine.c,v 1.58 2021/01/19 16:48:20 florian Exp $ */ /* * Copyright (c) 2017 Florian Obser <florian@openbsd.org> @@ -369,9 +369,8 @@ engine(int debug, int verbose) if (chdir("/") == -1) fatal("chdir(\"/\")"); - slaacd_process = PROC_ENGINE; - setproctitle("%s", log_procnames[slaacd_process]); - log_procinit(log_procnames[slaacd_process]); + setproctitle("%s", "engine"); + log_procinit("engine"); if (setgroups(1, &pw->pw_gid) || setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) || diff --git a/sbin/slaacd/frontend.c b/sbin/slaacd/frontend.c index ff6539b9ff5..f2984bac871 100644 --- a/sbin/slaacd/frontend.c +++ b/sbin/slaacd/frontend.c @@ -1,4 +1,4 @@ -/* $OpenBSD: frontend.c,v 1.46 2021/01/17 15:39:17 florian Exp $ */ +/* $OpenBSD: frontend.c,v 1.47 2021/01/19 16:48:20 florian Exp $ */ /* * Copyright (c) 2017 Florian Obser <florian@openbsd.org> @@ -155,9 +155,8 @@ frontend(int debug, int verbose) if (chdir("/") == -1) fatal("chdir(\"/\")"); - slaacd_process = PROC_FRONTEND; - setproctitle("%s", log_procnames[slaacd_process]); - log_procinit(log_procnames[slaacd_process]); + setproctitle("%s", "frontend"); + log_procinit("frontend"); if ((ioctlsock = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0)) == -1) fatal("socket"); diff --git a/sbin/slaacd/slaacd.c b/sbin/slaacd/slaacd.c index faf4edad31c..00a9d206cc9 100644 --- a/sbin/slaacd/slaacd.c +++ b/sbin/slaacd/slaacd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: slaacd.c,v 1.54 2021/01/17 15:39:17 florian Exp $ */ +/* $OpenBSD: slaacd.c,v 1.55 2021/01/19 16:48:20 florian Exp $ */ /* * Copyright (c) 2017 Florian Obser <florian@openbsd.org> @@ -54,12 +54,18 @@ #include "engine.h" #include "control.h" +enum slaacd_process { + PROC_MAIN, + PROC_ENGINE, + PROC_FRONTEND +}; + __dead void usage(void); __dead void main_shutdown(void); void main_sig_handler(int, short, void *); -static pid_t start_child(int, char *, int, int, int); +static pid_t start_child(enum slaacd_process, char *, int, int, int); void main_dispatch_frontend(int, short, void *); void main_dispatch_engine(int, short, void *); @@ -197,9 +203,7 @@ main(int argc, char *argv[]) frontend_pid = start_child(PROC_FRONTEND, saved_argv0, pipe_main2frontend[1], debug, verbose); - slaacd_process = PROC_MAIN; - - log_procinit(log_procnames[slaacd_process]); + log_procinit("main"); if ((routesock = socket(AF_ROUTE, SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, AF_INET6)) == -1) @@ -319,7 +323,7 @@ main_shutdown(void) } static pid_t -start_child(int p, char *argv0, int fd, int debug, int verbose) +start_child(enum slaacd_process p, char *argv0, int fd, int debug, int verbose) { char *argv[7]; int argc = 0; diff --git a/sbin/slaacd/slaacd.h b/sbin/slaacd/slaacd.h index 16b47434b0f..296e40f7f8e 100644 --- a/sbin/slaacd/slaacd.h +++ b/sbin/slaacd/slaacd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: slaacd.h,v 1.27 2020/09/14 09:07:05 florian Exp $ */ +/* $OpenBSD: slaacd.h,v 1.28 2021/01/19 16:48:20 florian Exp $ */ /* * Copyright (c) 2017 Florian Obser <florian@openbsd.org> @@ -31,12 +31,6 @@ #define IMSG_DATA_SIZE(imsg) ((imsg).hdr.len - IMSG_HEADER_SIZE) -static const char * const log_procnames[] = { - "main", - "engine", - "frontend" -}; - struct imsgev { struct imsgbuf ibuf; void (*handler)(int, short, void *); @@ -84,12 +78,6 @@ enum imsg_type { IMSG_DUP_ADDRESS, }; -enum { - PROC_MAIN, - PROC_ENGINE, - PROC_FRONTEND -} slaacd_process; - enum rpref { LOW, MEDIUM, |