From b8781ff08d9981258e75789c6f4ed18a56991577 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 18 Dec 2009 13:46:33 -0800 Subject: [PATCH] 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. --- lib/daemon.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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_) { -- 2.43.0