From cdf8a300923e445996811c78d19cbd2f5c3997ab Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 28 Jan 1999 18:42:34 +0000 Subject: [PATCH] Patch from Eric Norum to avoid dereferencing a NULL pointer. --- c/src/exec/libnetworking/rtems/rtems_syscall.c | 5 ++++- c/src/lib/libnetworking/rtems/rtems_syscall.c | 5 ++++- c/src/libnetworking/rtems/rtems_syscall.c | 5 ++++- cpukit/libnetworking/rtems/rtems_syscall.c | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/c/src/exec/libnetworking/rtems/rtems_syscall.c b/c/src/exec/libnetworking/rtems/rtems_syscall.c index 63d34bd817..4a871f78fb 100644 --- a/c/src/exec/libnetworking/rtems/rtems_syscall.c +++ b/c/src/exec/libnetworking/rtems/rtems_syscall.c @@ -448,7 +448,10 @@ recvfrom (int s, void *buf, size_t buflen, int flags, const struct sockaddr *fro iov.iov_base = buf; iov.iov_len = buflen; msg.msg_name = (caddr_t)from; - msg.msg_namelen = *fromlen; + if (fromlen) + msg.msg_namelen = *fromlen; + else + msg.msg_namelen = 0; msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = NULL; diff --git a/c/src/lib/libnetworking/rtems/rtems_syscall.c b/c/src/lib/libnetworking/rtems/rtems_syscall.c index 63d34bd817..4a871f78fb 100644 --- a/c/src/lib/libnetworking/rtems/rtems_syscall.c +++ b/c/src/lib/libnetworking/rtems/rtems_syscall.c @@ -448,7 +448,10 @@ recvfrom (int s, void *buf, size_t buflen, int flags, const struct sockaddr *fro iov.iov_base = buf; iov.iov_len = buflen; msg.msg_name = (caddr_t)from; - msg.msg_namelen = *fromlen; + if (fromlen) + msg.msg_namelen = *fromlen; + else + msg.msg_namelen = 0; msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = NULL; diff --git a/c/src/libnetworking/rtems/rtems_syscall.c b/c/src/libnetworking/rtems/rtems_syscall.c index 63d34bd817..4a871f78fb 100644 --- a/c/src/libnetworking/rtems/rtems_syscall.c +++ b/c/src/libnetworking/rtems/rtems_syscall.c @@ -448,7 +448,10 @@ recvfrom (int s, void *buf, size_t buflen, int flags, const struct sockaddr *fro iov.iov_base = buf; iov.iov_len = buflen; msg.msg_name = (caddr_t)from; - msg.msg_namelen = *fromlen; + if (fromlen) + msg.msg_namelen = *fromlen; + else + msg.msg_namelen = 0; msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = NULL; diff --git a/cpukit/libnetworking/rtems/rtems_syscall.c b/cpukit/libnetworking/rtems/rtems_syscall.c index 63d34bd817..4a871f78fb 100644 --- a/cpukit/libnetworking/rtems/rtems_syscall.c +++ b/cpukit/libnetworking/rtems/rtems_syscall.c @@ -448,7 +448,10 @@ recvfrom (int s, void *buf, size_t buflen, int flags, const struct sockaddr *fro iov.iov_base = buf; iov.iov_len = buflen; msg.msg_name = (caddr_t)from; - msg.msg_namelen = *fromlen; + if (fromlen) + msg.msg_namelen = *fromlen; + else + msg.msg_namelen = 0; msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = NULL;