fix getservby*_r result pointer value on error

this is a clone of the fix to the gethostby*_r functions in
commit fe82bb9b92. the man pages
document that the getservby*_r functions set this pointer to
NULL if there was an error or if no record was found.
This commit is contained in:
Daniel Sabogal 2016-09-23 21:10:07 -04:00 committed by Rich Felker
parent d917ef0b84
commit 8d7a3f40c8
2 changed files with 3 additions and 0 deletions

View File

@ -15,6 +15,8 @@ int getservbyname_r(const char *name, const char *prots,
struct service servs[MAXSERVS];
int cnt, proto, align;
*res = 0;
/* Align buffer */
align = -(uintptr_t)buf & ALIGN-1;
if (buflen < 2*sizeof(char *)+align)

View File

@ -20,6 +20,7 @@ int getservbyport_r(int port, const char *prots,
if (r) r = getservbyport_r(port, "udp", se, buf, buflen, res);
return r;
}
*res = 0;
/* Align buffer */
i = (uintptr_t)buf & sizeof(char *)-1;