X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcollectdmon.c;h=f2798eef5f0384b210c8c4a8007f671a5645fecc;hb=4825cf6e51535f5c1550bc753bbc2f5161905543;hp=c3f95255a49ba58547c3619fe9b2b2830389ce5b;hpb=633c3966f770e4d46651a2fe219a18d8a9907a9f;p=collectd.git diff --git a/src/collectdmon.c b/src/collectdmon.c index c3f95255..f2798eef 100644 --- a/src/collectdmon.c +++ b/src/collectdmon.c @@ -80,7 +80,7 @@ static void exit_usage (char *name) "\nFor see collectd.conf(5).\n" - "\n"PACKAGE" "VERSION", http://collectd.org/\n" + "\n"PACKAGE_NAME" "PACKAGE_VERSION", http://collectd.org/\n" "by Florian octo Forster \n" "for contributions see `AUTHORS'\n", name); exit (0); @@ -119,6 +119,7 @@ static int pidfile_delete (void) static int daemonize (void) { struct rlimit rl; + int status; pid_t pid = 0; int i = 0; @@ -153,21 +154,24 @@ static int daemonize (void) close (i); errno = 0; - if (open ("/dev/null", O_RDWR) != 0) { + status = open ("/dev/null", O_RDWR); + if (status != 0) { syslog (LOG_ERR, "Error: couldn't connect STDIN to /dev/null: %s", strerror (errno)); return -1; } errno = 0; - if (dup (0) != 1) { + status = dup (0); + if (status != 1) { syslog (LOG_ERR, "Error: couldn't connect STDOUT to /dev/null: %s", strerror (errno)); return -1; } errno = 0; - if (dup (0) != 2) { + status = dup (0); + if (status != 2) { syslog (LOG_ERR, "Error: couldn't connect STDERR to /dev/null: %s", strerror (errno)); return -1; @@ -317,7 +321,10 @@ int main (int argc, char **argv) openlog ("collectdmon", LOG_CONS | LOG_PID, LOG_DAEMON); if (-1 == daemonize ()) + { + free (collectd_argv); return 1; + } sa.sa_handler = sig_int_term_handler; sa.sa_flags = 0; @@ -325,11 +332,13 @@ int main (int argc, char **argv) if (0 != sigaction (SIGINT, &sa, NULL)) { syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno)); + free (collectd_argv); return 1; } if (0 != sigaction (SIGTERM, &sa, NULL)) { syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno)); + free (collectd_argv); return 1; } @@ -337,6 +346,7 @@ int main (int argc, char **argv) if (0 != sigaction (SIGHUP, &sa, NULL)) { syslog (LOG_ERR, "Error: sigaction() failed: %s", strerror (errno)); + free (collectd_argv); return 1; }