fix getservby*() with null pointer for protocol argument

not sure this is the best fix but it should work
This commit is contained in:
Rich Felker 2012-07-14 20:16:23 -04:00
parent 7be3b5a073
commit 06650b9684
2 changed files with 8 additions and 0 deletions

View File

@ -12,6 +12,10 @@ int getservbyname_r(const char *name, const char *prots,
struct addrinfo *ai, hint = { .ai_family = AF_INET }; struct addrinfo *ai, hint = { .ai_family = AF_INET };
int i; int i;
if (!prots) return -(
getservbyname_r(name, "tcp", se, buf, buflen, res)
&& getservbyname_r(name, "udp", se, buf, buflen, res) );
/* Align buffer */ /* Align buffer */
i = (uintptr_t)buf & sizeof(char *)-1; i = (uintptr_t)buf & sizeof(char *)-1;
if (!i) i = sizeof(char *); if (!i) i = sizeof(char *);

View File

@ -15,6 +15,10 @@ int getservbyport_r(int port, const char *prots,
.sin_port = port, .sin_port = port,
}; };
if (!prots) return -(
getservbyport_r(port, "tcp", se, buf, buflen, res)
&& getservbyport_r(port, "udp", se, buf, buflen, res) );
/* Align buffer */ /* Align buffer */
i = (uintptr_t)buf & sizeof(char *)-1; i = (uintptr_t)buf & sizeof(char *)-1;
if (!i) i = sizeof(char *); if (!i) i = sizeof(char *);