vknetd - Ignore SIGPIPE
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 12 Jan 2012 19:06:59 +0000 (11:06 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 12 Jan 2012 19:06:59 +0000 (11:06 -0800)
* Ignore SIGPIPE, fixing an undesired kill of vknetd when a write()
  races a vkernel termination.

Reported-by: tuxillo
usr.sbin/vknetd/vknetd.c

index 22e7581..586c137 100644 (file)
@@ -106,6 +106,13 @@ main(int ac, char **av)
                SetAddrOpt = 1;
 
        /*
+        * Ignore SIGPIPE to prevent write() races against disconnecting
+        * clients from killing vknetd.  Should be inherited by all I/O
+        * threads.
+        */
+       signal(SIGPIPE, SIG_IGN);
+
+       /*
         * Special connect/debug mode
         */
        if (connectOpt) {