Close /dev/hotplug on exec(). Otherwise a restart of the daemon may
authornatano <natano@openbsd.org>
Sun, 31 Jul 2016 20:13:12 +0000 (20:13 +0000)
committernatano <natano@openbsd.org>
Sun, 31 Jul 2016 20:13:12 +0000 (20:13 +0000)
fail, because the device is occupied by a child process.

from Alexey Vatchenko
ok jca

usr.sbin/hotplugd/hotplugd.c

index 2e23bc7..1b067b6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: hotplugd.c,v 1.13 2015/11/19 06:05:40 deraadt Exp $   */
+/*     $OpenBSD: hotplugd.c,v 1.14 2016/07/31 20:13:12 natano Exp $    */
 /*
  * Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org>
  *
@@ -80,7 +80,7 @@ main(int argc, char *argv[])
        if (argc > 0)
                usage();
 
-       if ((devfd = open(device, O_RDONLY)) == -1)
+       if ((devfd = open(device, O_RDONLY | O_CLOEXEC)) == -1)
                err(1, "%s", device);
 
        bzero(&sact, sizeof(sact));