diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2009-08-07 11:13:49 -0700 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2009-08-13 10:21:13 +0100 |
commit | 065de90380c88d9fcc116627f714bed9984c2723 (patch) | |
tree | 79061a2699e0dc3e87c218b3b57c2f0577d5a69a /zebra | |
parent | 5bd5881838c22e075c3d0c245a8952a55e9dca38 (diff) |
all: check return value from daemon() call
* */*main.c: (main) Current versions of Gcc warn if the return value for
daemon() is not checked. So add a simple test and exit on failure.
Diffstat (limited to 'zebra')
-rw-r--r-- | zebra/main.c | 7 | ||||
-rw-r--r-- | zebra/test_main.c | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/zebra/main.c b/zebra/main.c index 2d6a4ac8..d829c046 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -362,8 +362,11 @@ main (int argc, char **argv) exit (0); /* Daemonize. */ - if (daemon_mode) - daemon (0, 0); + if (daemon_mode && daemon (0, 0) < 0) + { + zlog_err("Zebra daemon failed: %s", strerror(errno)); + exit (1); + } /* Output pid of zebra. */ pid_output (pid_file); diff --git a/zebra/test_main.c b/zebra/test_main.c index e186fea6..4398a389 100644 --- a/zebra/test_main.c +++ b/zebra/test_main.c @@ -308,8 +308,11 @@ main (int argc, char **argv) exit (0); /* Daemonize. */ - if (daemon_mode) - daemon (0, 0); + if (daemon_mode && daemon (0, 0) < 0) + { + perror("daemon start failed"); + exit (1); + } /* Needed for BSD routing socket. */ pid = getpid (); |