19 lines
704 B
Diff
19 lines
704 B
Diff
|
Index: libtirpc-0.2.1/src/getrpcport.c
|
||
|
===================================================================
|
||
|
--- libtirpc-0.2.1.orig/src/getrpcport.c
|
||
|
+++ libtirpc-0.2.1/src/getrpcport.c
|
||
|
@@ -54,11 +54,11 @@ getrpcport(host, prognum, versnum, proto
|
||
|
|
||
|
if ((hp = gethostbyname(host)) == NULL)
|
||
|
return (0);
|
||
|
+ if (hp->h_length != sizeof(addr.sin_addr.s_addr))
|
||
|
+ return (0);
|
||
|
memset(&addr, 0, sizeof(addr));
|
||
|
addr.sin_family = AF_INET;
|
||
|
addr.sin_port = 0;
|
||
|
- if (hp->h_length > sizeof(addr))
|
||
|
- hp->h_length = sizeof(addr);
|
||
|
memcpy(&addr.sin_addr.s_addr, hp->h_addr, (size_t)hp->h_length);
|
||
|
/* Inconsistent interfaces need casts! :-( */
|
||
|
return (pmap_getport(&addr, (u_long)prognum, (u_long)versnum,
|