summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_ktrace.c
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2001-01-06 09:34:20 +0000
committeralfred <alfred@FreeBSD.org>2001-01-06 09:34:20 +0000
commite326256dcc12359db64fa3d201d2ba676493351c (patch)
tree2d24a5f1b18beabcf0be16360ca1414b5602430f /sys/kern/kern_ktrace.c
parent8132a144d583e9b9f77857d08fb14d18c3efbfbf (diff)
downloadFreeBSD-src-e326256dcc12359db64fa3d201d2ba676493351c.zip
FreeBSD-src-e326256dcc12359db64fa3d201d2ba676493351c.tar.gz
Limit size of passed in data for utrace function.
Requested by: rwatson Obtained from: NetBSD
Diffstat (limited to 'sys/kern/kern_ktrace.c')
-rw-r--r--sys/kern/kern_ktrace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c
index f0f187f..003247a 100644
--- a/sys/kern/kern_ktrace.c
+++ b/sys/kern/kern_ktrace.c
@@ -48,6 +48,7 @@
#include <sys/ktrace.h>
#include <sys/malloc.h>
#include <sys/syslog.h>
+#include <sys/sysent.h>
static MALLOC_DEFINE(M_KTRACE, "KTRACE", "KTRACE");
@@ -359,6 +360,8 @@ utrace(curp, uap)
if (!KTRPOINT(p, KTR_USER))
return (0);
+ if (SCARG(uap, len) > KTR_USER_MAXLEN)
+ return (EINVAL);
p->p_traceflag |= KTRFAC_ACTIVE;
kth = ktrgetheader(KTR_USER);
MALLOC(cp, caddr_t, uap->len, M_KTRACE, M_WAITOK);
OpenPOWER on IntegriCloud