diff options
Diffstat (limited to 'sunrpc')
-rw-r--r-- | sunrpc/clnt_gen.c | 6 | ||||
-rw-r--r-- | sunrpc/clnt_simp.c | 3 | ||||
-rw-r--r-- | sunrpc/getrpcport.c | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/sunrpc/clnt_gen.c b/sunrpc/clnt_gen.c index e8656eefc7..0f388572d4 100644 --- a/sunrpc/clnt_gen.c +++ b/sunrpc/clnt_gen.c @@ -78,7 +78,8 @@ clnt_create (const char *hostname, u_long prog, u_long vers, hstbuflen = 1024; hsttmpbuf = __alloca (hstbuflen); while (__gethostbyname_r (hostname, &hostbuf, hsttmpbuf, hstbuflen, - &h, &herr) != 0) + &h, &herr) != 0 + || h == NULL) if (herr != NETDB_INTERNAL || errno != ERANGE) { rpc_createerr.cf_stat = RPC_UNKNOWNHOST; @@ -107,7 +108,8 @@ clnt_create (const char *hostname, u_long prog, u_long vers, prtbuflen = 1024; prttmpbuf = __alloca (prtbuflen); - while (__getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0) + while (__getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0 + || p == NULL) if (errno != ERANGE) { rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; diff --git a/sunrpc/clnt_simp.c b/sunrpc/clnt_simp.c index 41d106e570..e1e7e2ab73 100644 --- a/sunrpc/clnt_simp.c +++ b/sunrpc/clnt_simp.c @@ -105,7 +105,8 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum, buflen = 1024; buffer = __alloca (buflen); while (__gethostbyname_r (host, &hostbuf, buffer, buflen, - &hp, &herr) != 0) + &hp, &herr) != 0 + || hp == NULL) if (herr != NETDB_INTERNAL || errno != ERANGE) return (int) RPC_UNKNOWNHOST; else diff --git a/sunrpc/getrpcport.c b/sunrpc/getrpcport.c index 188c668c1d..2e12482abc 100644 --- a/sunrpc/getrpcport.c +++ b/sunrpc/getrpcport.c @@ -56,7 +56,8 @@ getrpcport (const char *host, u_long prognum, u_long versnum, u_int proto) buflen = 1024; buffer = __alloca (buflen); - while (__gethostbyname_r (host, &hostbuf, buffer, buflen, &hp, &herr) != 0) + while (__gethostbyname_r (host, &hostbuf, buffer, buflen, &hp, &herr) != 0 + || hp == NULL) if (herr != NETDB_INTERNAL || errno != ERANGE) return 0; else |