mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-12 09:50:29 +00:00
fix assertion failure in ng_ipaddr.c
when building with debugging enabled, but without ipv6 support, ngircd dumped core when loading a config file that specified an ipv6 listen address. ngircd: ng_ipaddr.c:45: ng_ipaddr_init: Assertion `sizeof(*addr) >= res0->ai_addrlen' failed.
This commit is contained in:
parent
affa03b277
commit
fa09883c72
@ -30,6 +30,9 @@ ng_ipaddr_init(ng_ipaddr_t *addr, const char *ip_str, UINT16 port)
|
|||||||
|
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
hints.ai_flags = AI_NUMERICHOST;
|
hints.ai_flags = AI_NUMERICHOST;
|
||||||
|
#ifndef WANT_IPV6 /* do not convert ipv6 addresses */
|
||||||
|
hints.ai_family = AF_INET;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* some getaddrinfo implementations require that ai_socktype is set. */
|
/* some getaddrinfo implementations require that ai_socktype is set. */
|
||||||
hints.ai_socktype = SOCK_STREAM;
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
@ -38,7 +41,6 @@ ng_ipaddr_init(ng_ipaddr_t *addr, const char *ip_str, UINT16 port)
|
|||||||
snprintf(portstr, sizeof(portstr), "%u", (unsigned int) port);
|
snprintf(portstr, sizeof(portstr), "%u", (unsigned int) port);
|
||||||
|
|
||||||
ret = getaddrinfo(ip_str, portstr, &hints, &res0);
|
ret = getaddrinfo(ip_str, portstr, &hints, &res0);
|
||||||
assert(ret == 0);
|
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user