summaryrefslogtreecommitdiffstats
path: root/lib/libc/rpc/rpc_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/rpc/rpc_generic.c')
-rw-r--r--lib/libc/rpc/rpc_generic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/rpc/rpc_generic.c b/lib/libc/rpc/rpc_generic.c
index fe970e1..06faeac 100644
--- a/lib/libc/rpc/rpc_generic.c
+++ b/lib/libc/rpc/rpc_generic.c
@@ -610,6 +610,8 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
switch (af) {
case AF_INET:
+ if (nbuf->len < sizeof(*sin))
+ return NULL;
sin = nbuf->buf;
if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf)
== NULL)
@@ -621,6 +623,8 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
break;
#ifdef INET6
case AF_INET6:
+ if (nbuf->len < sizeof(*sin6))
+ return NULL;
sin6 = nbuf->buf;
if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6)
== NULL)
@@ -659,6 +663,10 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr)
port = 0;
sin = NULL;
+
+ if (uaddr == NULL)
+ return NULL;
+
addrstr = strdup(uaddr);
if (addrstr == NULL)
return NULL;
OpenPOWER on IntegriCloud