summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorian <florian@openbsd.org>2021-01-19 16:48:20 +0000
committerflorian <florian@openbsd.org>2021-01-19 16:48:20 +0000
commit31525baa67bd4c08bbf6c2ed9578bb58e68399bc (patch)
tree556f0bc980b7de6bd4812afb9da20a7cb3aac532
parentPrevent an overflow in inet_net_pton(3) when the passed in buffer is (diff)
downloadwireguard-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.c7
-rw-r--r--sbin/slaacd/frontend.c7
-rw-r--r--sbin/slaacd/slaacd.c16
-rw-r--r--sbin/slaacd/slaacd.h14
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,