From: Ben Pfaff Date: Fri, 18 Dec 2009 21:46:33 +0000 (-0800) Subject: daemon: Don't ignore failed write to pipe. X-Git-Tag: v1.0.0~259^2~355 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=b8781ff08d9981258e75789c6f4ed18a56991577;p=sliver-openvswitch.git daemon: Don't ignore failed write to pipe. If the write to the pipe fails here then the parent will think that the child failed to start up, so the child should oblige it by bailing out. --- diff --git a/lib/daemon.c b/lib/daemon.c index c4effa9b0..9a1be55db 100644 --- a/lib/daemon.c +++ b/lib/daemon.c @@ -25,6 +25,7 @@ #include "fatal-signal.h" #include "dirs.h" #include "lockfile.h" +#include "socket-util.h" #include "timeval.h" #include "util.h" @@ -280,9 +281,14 @@ void daemonize_complete(void) { if (detach) { - char c = 0; + size_t bytes_written; + int error; + + error = write_fully(daemonize_fds[1], "", 1, &bytes_written); + if (error) { + ovs_fatal(error, "could not write to pipe"); + } - ignore(write(daemonize_fds[1], &c, 1)); close(daemonize_fds[1]); setsid(); if (chdir_) {