From: Ben Pfaff Date: Fri, 18 Dec 2009 21:46:33 +0000 (-0800) Subject: daemon: Don't ignore failed write to pipe. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8781ff08d9981258e75789c6f4ed18a56991577;p=openvswitch 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 c4effa9b..9a1be55d 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_) {