X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnetwork.c;fp=src%2Fnetwork.c;h=687717c42e052046b0a7b83d659d6ee01052b6ad;hb=9d208c24c0cc42562a09ea7ea145642b3bca29dc;hp=0fdb1c0e243f92a09cb785e62deec5c3a64f78ae;hpb=55dcf13791059739dbbba11c7aaaabcf807ae2a3;p=collectd.git diff --git a/src/network.c b/src/network.c index 0fdb1c0e..687717c4 100644 --- a/src/network.c +++ b/src/network.c @@ -2738,16 +2738,17 @@ network_config_set_bind_address(const oconfig_item_t *ci, return -1; int ret; - struct addrinfo hint, *res = NULL; - - memset(&hint, '\0', sizeof hint); - hint.ai_family = PF_UNSPEC; - hint.ai_flags = AI_NUMERICHOST; + struct addrinfo *res = NULL; + struct addrinfo hint = {.ai_family = PF_UNSPEC, + .ai_flags = AI_NUMERICHOST, + .ai_protocol = IPPROTO_IP, + .ai_socktype = SOCK_DGRAM}; ret = getaddrinfo(addr_text, NULL, &hint, &res); if (ret) { ERROR("network plugin: Bind address option has invalid address set: %s", gai_strerror(ret)); + freeaddrinfo(res); return -1; } @@ -2763,9 +2764,11 @@ network_config_set_bind_address(const oconfig_item_t *ci, ERROR("network plugin: %s is an unknown address format %d\n", addr_text, res->ai_family); sfree(*bind_address); + freeaddrinfo(res); return -1; } + freeaddrinfo(res); return 0; } /* int network_config_set_bind_address */