diff options
author | glebius <glebius@FreeBSD.org> | 2016-05-17 22:30:43 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2016-05-17 22:30:43 +0000 |
commit | bbf994c9e11e7fd930b929ef68a3857de7a1d99a (patch) | |
tree | e7c0224b0adc13d9591f0695075182b1b5d4173c | |
parent | 2e0f17c8dfb3f40056e9e2189257f541927d8c70 (diff) | |
download | FreeBSD-src-bbf994c9e11e7fd930b929ef68a3857de7a1d99a.zip FreeBSD-src-bbf994c9e11e7fd930b929ef68a3857de7a1d99a.tar.gz |
Validate that user supplied control message length is not negative.
Submitted by: C Turt <cturt hardenedbsd.org>
Security: SA-16:19
Security: CVE-2016-1887
-rw-r--r-- | sys/kern/uipc_syscalls.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index fa36849..97ca115 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -1787,6 +1787,9 @@ sockargs(mp, buf, buflen, type) struct mbuf *m; int error; + if (buflen < 0) + return (EINVAL); + if (buflen > MLEN) { #ifdef COMPAT_OLDSOCK if (type == MT_SONAME && buflen <= 112) |