Use correct order of arguments for shutdown(2).
authorflorian <florian@openbsd.org>
Wed, 15 Feb 2023 13:47:00 +0000 (13:47 +0000)
committerflorian <florian@openbsd.org>
Wed, 15 Feb 2023 13:47:00 +0000 (13:47 +0000)
Luckily routesock would never be <= 2 so shutdown would always failing
with EINVAL and not shutting down random other sockets.
The kernel was just uselessly piling up route messages that we were
never reading.

This mistake first showed up in slaacd(8) and then was copied to the
other daemons.

Reported & fixed by Josiah Frentsos (jfrent at tilde.team), thanks!
OK kn

sbin/dhcpleased/dhcpleased.c
sbin/slaacd/slaacd.c
sbin/unwind/unwind.c

index dc52c6d..1b76a0b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: dhcpleased.c,v 1.28 2022/12/11 10:47:37 otto Exp $    */
+/*     $OpenBSD: dhcpleased.c,v 1.29 2023/02/15 13:47:00 florian Exp $ */
 
 /*
  * Copyright (c) 2017, 2021 Florian Obser <florian@openbsd.org>
@@ -255,7 +255,7 @@ main(int argc, char *argv[])
        if ((routesock = socket(AF_ROUTE, SOCK_RAW | SOCK_CLOEXEC |
            SOCK_NONBLOCK, AF_INET)) == -1)
                fatal("route socket");
-       shutdown(SHUT_RD, routesock);
+       shutdown(routesock, SHUT_RD);
 
        event_init();
 
index 816afff..4d17863 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: slaacd.c,v 1.67 2022/11/27 15:19:38 kn Exp $  */
+/*     $OpenBSD: slaacd.c,v 1.68 2023/02/15 13:47:00 florian Exp $     */
 
 /*
  * Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -213,7 +213,7 @@ main(int argc, char *argv[])
        if ((routesock = socket(AF_ROUTE, SOCK_RAW | SOCK_CLOEXEC |
            SOCK_NONBLOCK, AF_INET6)) == -1)
                fatal("route socket");
-       shutdown(SHUT_RD, routesock);
+       shutdown(routesock, SHUT_RD);
 
        event_init();
 
index 3a407c9..1b70b6e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: unwind.c,v 1.67 2021/12/18 10:34:19 florian Exp $     */
+/*     $OpenBSD: unwind.c,v 1.68 2023/02/15 13:47:00 florian Exp $     */
 
 /*
  * Copyright (c) 2018 Florian Obser <florian@openbsd.org>
@@ -278,7 +278,7 @@ main(int argc, char *argv[])
        if ((routesock = socket(AF_ROUTE, SOCK_RAW | SOCK_CLOEXEC |
            SOCK_NONBLOCK, 0)) == -1)
                fatal("route socket");
-       shutdown(SHUT_RD, routesock);
+       shutdown(routesock, SHUT_RD);
 
        if ((ta_fd = open(TRUST_ANCHOR_FILE, O_RDWR | O_CREAT, 0644)) == -1)
                log_warn("%s", TRUST_ANCHOR_FILE);