Merge branch 'collectd-5.5'
authorFlorian Forster <octo@collectd.org>
Sat, 5 Dec 2015 21:06:46 +0000 (22:06 +0100)
committerFlorian Forster <octo@collectd.org>
Sat, 5 Dec 2015 21:06:46 +0000 (22:06 +0100)
15 files changed:
configure.ac
src/aggregation.c
src/bind.c
src/curl_xml.c
src/daemon/utils_cache.c
src/libcollectdclient/client.c
src/madwifi.c
src/statsd.c
src/unixsock.c
src/varnish.c
src/write_riemann.c
src/write_sensu.c
src/write_tsdb.c
src/zfs_arc.c
src/zookeeper.c

index 2a9b84a..4acd193 100644 (file)
@@ -2227,7 +2227,7 @@ then
                fi
 
                AC_MSG_CHECKING([for libjvm.so])
-               TMPVAR=`find -L "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
+               TMPVAR=`find -L "$with_java_home" -type f -name libjvm.so -o -name libjvm.dylib -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
                if test "x$TMPVAR" != "x"
                then
                        AC_MSG_RESULT([found in $TMPVAR])
index 8175c66..56e4955 100644 (file)
@@ -262,6 +262,7 @@ static agg_instance_t *agg_instance_create (data_set_t const *ds, /* {{{ */
     inst->state_ ## field = malloc (sizeof (*inst->state_ ## field)); \
     if (inst->state_ ## field == NULL) { \
       agg_instance_destroy (inst); \
+      free (inst); \
       ERROR ("aggregation plugin: malloc() failed."); \
       return (NULL); \
     } \
index 9fb3ec4..dd49cb2 100644 (file)
@@ -1709,6 +1709,7 @@ static int bind_config (oconfig_item_t *ci) /* {{{ */
         return (-1);
       }
 
+      sfree (url);
       url = strdup (child->values[0].value.string);
     } else if (strcasecmp ("OpCodes", child->key) == 0)
       bind_config_set_bool ("OpCodes", &global_opcodes, child);
index 5a1f2ba..e83ac2d 100644 (file)
@@ -698,7 +698,7 @@ static int cx_config_add_values (const char *name, cx_xpath_t *xpath, /* {{{ */
     sstrncpy (xpath->values[i].path, ci->values[i].value.string, sizeof (xpath->values[i].path));
   }
 
-  return (0); 
+  return (0);
 } /* }}} cx_config_add_values */
 
 static int cx_config_add_xpath (cx_t *db, /* {{{ */
@@ -728,6 +728,7 @@ static int cx_config_add_xpath (cx_t *db, /* {{{ */
   {
     ERROR ("curl_xml plugin: invalid xpath. "
            "xpath value can't be an empty string");
+    sfree (xpath);
     return (-1);
   }
 
@@ -771,6 +772,8 @@ static int cx_config_add_xpath (cx_t *db, /* {{{ */
       if (db->list == NULL)
       {
         ERROR ("curl_xml plugin: list creation failed.");
+        sfree (xpath->path);
+        sfree (xpath);
         return (-1);
       }
     }
@@ -779,6 +782,8 @@ static int cx_config_add_xpath (cx_t *db, /* {{{ */
     if (name == NULL)
     {
         ERROR ("curl_xml plugin: strdup failed.");
+        sfree (xpath->path);
+        sfree (xpath);
         return (-1);
     }
 
@@ -786,6 +791,8 @@ static int cx_config_add_xpath (cx_t *db, /* {{{ */
     if (le == NULL)
     {
       ERROR ("curl_xml plugin: llentry_create failed.");
+      sfree (xpath->path);
+      sfree (xpath);
       return (-1);
     }
 
index 3f7a596..e2c6426 100644 (file)
@@ -193,12 +193,13 @@ static int uc_insert (const data_set_t *ds, const value_list_t *vl,
            / CDTIME_T_TO_DOUBLE (vl->interval);
        ce->values_raw[i].absolute = vl->values[i].absolute;
        break;
-       
+
       default:
        /* This shouldn't happen. */
        ERROR ("uc_insert: Don't know how to handle data source type %i.",
            ds->ds[i].type);
        sfree (key_copy);
+       cache_free (ce);
        return (-1);
     } /* switch (ds->ds[i].type) */
   } /* for (i) */
index eaee9c0..77819c2 100644 (file)
@@ -526,9 +526,11 @@ static int lcc_open_netsocket (lcc_connection_t *c, /* {{{ */
   if (status != 0)
   {
     lcc_set_errno (c, status);
+    freeaddrinfo (ai_res);
     return (-1);
   }
 
+  freeaddrinfo (ai_res);
   return (0);
 } /* }}} int lcc_open_netsocket */
 
index bb33b15..d0b2f83 100644 (file)
@@ -821,15 +821,16 @@ check_devname (const char *dev)
 
        if (dev[0] == '.')
                return 0;
-       
+
        ssnprintf (buf, sizeof (buf), "/sys/class/net/%s/device/driver", dev);
-       buf[sizeof (buf) - 1] = 0;
+       buf[sizeof (buf) - 1] = '\0';
 
-       memset (buf2, 0, sizeof (buf2));
        i = readlink (buf, buf2, sizeof (buf2) - 1);
        if (i < 0)
                return 0;
 
+       buf2[i] = '\0';
+
        if (strstr (buf2, "/drivers/ath_") == NULL)
                return 0;
        return 1;
index ea4123c..d0a677e 100644 (file)
@@ -565,6 +565,7 @@ static int statsd_network_init (struct pollfd **ret_fds, /* {{{ */
     if (tmp == NULL)
     {
       ERROR ("statsd plugin: realloc failed.");
+      close (fd);
       continue;
     }
     fds = tmp;
index e6c75a6..54a1e20 100644 (file)
@@ -127,7 +127,16 @@ static int us_open_socket (void)
                return (-1);
        }
 
-       chmod (sa.sun_path, sock_perms);
+       status = chmod (sa.sun_path, sock_perms);
+       if (status == -1)
+       {
+               char errbuf[1024];
+               ERROR ("unixsock plugin: chmod failed: %s",
+                               sstrerror (errno, errbuf, sizeof (errbuf)));
+               close (sock_fd);
+               sock_fd = -1;
+               return (-1);
+       }
 
        status = listen (sock_fd, 8);
        if (status != 0)
index 95303be..aee7247 100644 (file)
@@ -1002,6 +1002,7 @@ static int varnish_config_instance (const oconfig_item_t *ci) /* {{{ */
        {
                WARNING ("Varnish plugin: \"Instance\" blocks accept only "
                                "one argument.");
+               sfree (conf);
                return (EINVAL);
        }
 
@@ -1109,6 +1110,7 @@ static int varnish_config_instance (const oconfig_item_t *ci) /* {{{ */
                WARNING ("Varnish plugin: No metric has been configured for "
                                "instance \"%s\". Disabling this instance.",
                                (conf->instance == NULL) ? "localhost" : conf->instance);
+               sfree (conf);
                return (EINVAL);
        }
 
index 73d202c..5c59c92 100644 (file)
@@ -1050,6 +1050,7 @@ static int riemann_config(oconfig_item_t *ci) /* {{{ */
                        }
                        if ((val = strdup(child->values[1].value.string)) == NULL) {
                                WARNING("cannot allocate memory for attribute value.");
+                               sfree (key);
                                return (-1);
                        }
                        strarray_add(&riemann_attrs, &riemann_attrs_num, key);
index 67c0496..2336541 100644 (file)
@@ -679,6 +679,7 @@ static char *sensu_notification_to_json(struct sensu_host *host, /* {{{ */
        char *handlers_str = build_json_str_list("handlers", &(host->notification_handlers));
        if (handlers_str == NULL) {
                ERROR("write_sensu plugin: Unable to alloc memory");
+               free(ret_str);
                return NULL;
        }
        // incorporate the handlers
@@ -780,6 +781,7 @@ static char *sensu_notification_to_json(struct sensu_host *host, /* {{{ */
                char *msg = replace_json_reserved(n->message);
                if (msg == NULL) {
                        ERROR("write_sensu plugin: Unable to alloc memory");
+                       free(ret_str);
                        return NULL;
                }
                res = asprintf(&temp_str, "%s, \"output\": \"%s - %s\"", ret_str, severity, msg);
index 4a62614..2ed4389 100644 (file)
@@ -211,7 +211,6 @@ static int wt_callback_init(struct wt_callback *cb)
         ERROR("write_tsdb plugin: Connecting to %s:%s failed. "
               "The last error was: %s", node, service,
               sstrerror (errno, errbuf, sizeof(errbuf)));
-        close(cb->sock_fd);
         return -1;
     }
 
index 2577bb0..41a89b1 100644 (file)
@@ -208,6 +208,11 @@ static int za_read (void)
                {
                        llentry_t *e;
                        llvalues = malloc(sizeof(long long int) * i);
+                       if (llvalues == NULL)
+                       {
+                               ERROR ("zfs_arc plugin: `malloc' failed.");
+                               return (-1);
+                       }
                        int j = 0;
 
                        pnl = file_contents;
index abdbf20..539795c 100644 (file)
@@ -198,11 +198,6 @@ static int zookeeper_query (char *buffer, size_t buffer_size)
                }
 
                buffer_fill += (size_t) status;
-               if (status == 0)
-               {
-                       /* done reading from the socket */
-                       break;
-               }
        } /* while (recv) */
 
        status = 0;