X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgmond.c;h=09d713789f49402f1f8412486a56b9fd05c38ed0;hb=81a5fd5046c6a39f580a8fc1a3af837fd5f5aa5c;hp=0811c2b919d3a29c6d14b11b259377468781c8cb;hpb=09c6a320f3cb36b5dbb2c2ce43858f33be7acf9b;p=collectd.git diff --git a/src/gmond.c b/src/gmond.c index 0811c2b9..09d71378 100644 --- a/src/gmond.c +++ b/src/gmond.c @@ -222,13 +222,13 @@ static int create_sockets (socket_entry_t **ret_sockets, /* {{{ */ struct addrinfo *ai_ptr; int ai_return; - socket_entry_t *sockets; - size_t sockets_num; + socket_entry_t *sockets = NULL; + size_t sockets_num = 0; int status; - - sockets = *ret_sockets; - sockets_num = *ret_sockets_num; + + if (*ret_sockets != NULL) + return (EINVAL); memset (&ai_hints, 0, sizeof (ai_hints)); ai_hints.ai_flags = 0; @@ -360,8 +360,11 @@ static int create_sockets (socket_entry_t **ret_sockets, /* {{{ */ freeaddrinfo (ai_list); - if ((*ret_sockets_num) >= sockets_num) + if (sockets_num == 0) + { + sfree (sockets); return (-1); + } *ret_sockets = sockets; *ret_sockets_num = sockets_num;