diff options
author | Mark Johnston <markj@FreeBSD.org> | 2020-02-05 16:09:44 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2020-02-05 16:09:44 +0000 |
commit | 51d7f2ed58056afc7f1b01a0af2ac2ef24a5c497 (patch) | |
tree | 1386baee8a37db01f5db9fdbacf271280a9ed020 /lib/libc/net | |
parent | d3631aa582a4764574ccbf3719e0b3ff369d08ad (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.c | 4 |
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; |