aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2017-11-13 07:47:43 +0000
committerXin LI <delphij@FreeBSD.org>2017-11-13 07:47:43 +0000
commit712dda7fb0b831afe1252e432db3fd5c42b702b2 (patch)
tree3402ddd430e6b3b2b5743c8ec5892d7f9d14da54 /sys/kern/kern_proc.c
parent691e6ea877bcb5bfc32cd17b9ff4ecada3fb93f9 (diff)
downloadsrc-712dda7fb0b831afe1252e432db3fd5c42b702b2.tar.gz
src-712dda7fb0b831afe1252e432db3fd5c42b702b2.zip
Be more careful when doing calculation with request from userland.
MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=325755
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index b323a749a6df..6fdb6f6d6589 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1956,7 +1956,7 @@ sysctl_kern_proc_args(SYSCTL_HANDLER_ARGS)
if (error != 0 || req->newptr == NULL)
return (error);
- if (req->newlen + sizeof(struct pargs) > ps_arg_cache_limit)
+ if (req->newlen > ps_arg_cache_limit - sizeof(struct pargs))
return (ENOMEM);
newpa = pargs_alloc(req->newlen);
error = SYSCTL_IN(req, newpa->ar_args, req->newlen);