X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fwrite_sensu.c;h=d37792b4f5e589ef5d764e3b571c4d87e4215692;hb=290741f2e6de9e9b467463c1f0c6f031c4036428;hp=b0cf9fa078c8d6dbd4fd019d81409536ef276c2c;hpb=6164fe4456716e6dc36aaa2ab617b104a7ac5ff3;p=collectd.git diff --git a/src/write_sensu.c b/src/write_sensu.c index b0cf9fa0..d37792b4 100644 --- a/src/write_sensu.c +++ b/src/write_sensu.c @@ -24,6 +24,8 @@ * Fabrice A. Marie */ +#define _GNU_SOURCE + #include "collectd.h" #include "plugin.h" #include "common.h" @@ -33,7 +35,6 @@ #include #include #include -#include #include #include @@ -175,7 +176,7 @@ static void sensu_close_socket(struct sensu_host *host) /* {{{ */ static char *build_json_str_list(const char *tag, struct str_list const *list) /* {{{ */ { int res; - char *ret_str; + char *ret_str = NULL; char *temp_str; int i; if (list->nb_strs == 0) { @@ -190,6 +191,7 @@ static char *build_json_str_list(const char *tag, struct str_list const *list) / res = asprintf(&temp_str, "\"%s\": [\"%s\"", tag, list->strs[0]); if (res == -1) { ERROR("write_sensu plugin: Unable to alloc memory"); + free(ret_str); return NULL; } for (i=1; inb_strs; i++) { @@ -522,11 +524,10 @@ static char *replace_str(const char *str, const char *old, /* {{{ */ } else retlen = strlen(str); - ret = malloc(retlen + 1); + ret = calloc(1, retlen + 1); if (ret == NULL) return NULL; // added to original: not optimized, but keeps valgrind happy. - memset(ret, 0, retlen + 1); r = ret; p = str;