Browse Source

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.
master
Daniel Sabogal 10 years ago
committed by Rich Felker
parent
commit
8d7a3f40c8
  1. 2
      src/network/getservbyname_r.c
  2. 1
      src/network/getservbyport_r.c

2
src/network/getservbyname_r.c

@ -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)

1
src/network/getservbyport_r.c

@ -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;

Loading…
Cancel
Save