Merged branch 'collectd-4.10' into collectd-5.4.
[collectd.git] / src / collectdmon.c
index 015344f..c81ca3f 100644 (file)
  *   Sebastian Harl <sh at tokkee.org>
  **/
 
+#if !defined(__GNUC__) || !__GNUC__
+# define __attribute__(x) /**/
+#endif
+
 #include "config.h"
 
 #include <assert.h>
@@ -197,13 +201,13 @@ static int collectd_stop (void)
        return 0;
 } /* collectd_stop */
 
-static void sig_int_term_handler (int signo)
+static void sig_int_term_handler (int __attribute__((unused)) signo)
 {
        ++loop;
        return;
 } /* sig_int_term_handler */
 
-static void sig_hup_handler (int signo)
+static void sig_hup_handler (int __attribute__((unused)) signo)
 {
        ++restart;
        return;
@@ -308,7 +312,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;
@@ -316,11 +323,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;
        }
 
@@ -328,6 +337,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;
        }