X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flibcollectdclient%2Fnetwork_parse.c;h=9a90f8e0e473e37d1b6faee6d70501bd3da7feaa;hb=b5ec07e24045a872bbe935aae16c45c99316c051;hp=4083e1ec8ff5017da20b5afcfd8bbed363535d48;hpb=1581f3b307554cbf8b5784729754c5d73a1192a5;p=collectd.git diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c index 4083e1ec..9a90f8e0 100644 --- a/src/libcollectdclient/network_parse.c +++ b/src/libcollectdclient/network_parse.c @@ -43,6 +43,8 @@ #include #elif HAVE_SYS_ENDIAN_H #include +#else /* fallback */ +#include "stdendian.h" #endif #if HAVE_GCRYPT_H @@ -302,8 +304,6 @@ static int parse_values(void *payload, size_t payload_size, state->values = calloc(sizeof(*state->values), state->values_len); state->values_types = calloc(sizeof(*state->values_types), state->values_len); if ((state->values == NULL) || (state->values_types == NULL)) { - free(state->values); - free(state->values_types); return ENOMEM; } @@ -556,6 +556,8 @@ static int network_parse(void *data, size_t data_size, lcc_security_level_t sl, case TYPE_VALUES: { lcc_value_list_t vl = state; if (parse_values(payload, sizeof(payload), &vl)) { + free(vl.values); + free(vl.values_types); DEBUG("lcc_network_parse(): parse_values failed.\n"); return EINVAL; }