aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/net
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2020-02-05 16:09:44 +0000
committerMark Johnston <markj@FreeBSD.org>2020-02-05 16:09:44 +0000
commit51d7f2ed58056afc7f1b01a0af2ac2ef24a5c497 (patch)
tree1386baee8a37db01f5db9fdbacf271280a9ed020 /lib/libc/net
parentd3631aa582a4764574ccbf3719e0b3ff369d08ad (diff)
Improve validation of the sockaddr length in iruserok_sa().
Negative numbers are not valid sockaddr lengths. PR: 243747 Submitted by: Andrew Reiter <areiter@veracode.com> MFC after: 1 week
Notes
Notes: svn path=/head/; revision=357575
Diffstat (limited to 'lib/libc/net')
-rw-r--r--lib/libc/net/rcmd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc/net/rcmd.c b/lib/libc/net/rcmd.c
index 3cb475a6bece..e8b4ffd356c4 100644
--- a/lib/libc/net/rcmd.c
+++ b/lib/libc/net/rcmd.c
@@ -438,8 +438,8 @@ iruserok_sa(const void *ra, int rlen, int superuser, const char *ruser,
struct sockaddr_storage ss;
/* avoid alignment issue */
- if (rlen > sizeof(ss))
- return(-1);
+ if (rlen <= 0 || rlen > sizeof(ss))
+ return (-1);
memcpy(&ss, ra, rlen);
raddr = (struct sockaddr *)&ss;