diff options
author | alfred <alfred@FreeBSD.org> | 2001-01-06 09:34:20 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2001-01-06 09:34:20 +0000 |
commit | e326256dcc12359db64fa3d201d2ba676493351c (patch) | |
tree | 2d24a5f1b18beabcf0be16360ca1414b5602430f /sys/kern | |
parent | 8132a144d583e9b9f77857d08fb14d18c3efbfbf (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/kern/kern_ktrace.c | 3 |
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); |