summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2016-05-17 22:30:43 +0000
committerglebius <glebius@FreeBSD.org>2016-05-17 22:30:43 +0000
commitbbf994c9e11e7fd930b929ef68a3857de7a1d99a (patch)
treee7c0224b0adc13d9591f0695075182b1b5d4173c
parent2e0f17c8dfb3f40056e9e2189257f541927d8c70 (diff)
downloadFreeBSD-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.c3
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)
OpenPOWER on IntegriCloud