netdb: Accept '0' as service in lwip_getaddrinfo

Fixes bug #59925
This commit is contained in:
Erik Ekman 2021-01-22 20:19:44 +01:00
parent 51265f3f7d
commit 5bd7518343

View File

@ -305,7 +305,11 @@ lwip_getaddrinfo(const char *nodename, const char *servname,
/* service name specified: convert to port number /* service name specified: convert to port number
* @todo?: currently, only ASCII integers (port numbers) are supported (AI_NUMERICSERV)! */ * @todo?: currently, only ASCII integers (port numbers) are supported (AI_NUMERICSERV)! */
port_nr = atoi(servname); port_nr = atoi(servname);
if ((port_nr <= 0) || (port_nr > 0xffff)) { if (port_nr == 0 && (servname[0] != '0')) {
/* atoi failed - service was not numeric */
return EAI_SERVICE;
}
if ((port_nr < 0) || (port_nr > 0xffff)) {
return EAI_SERVICE; return EAI_SERVICE;
} }
} }