diff options
author | Xin LI <delphij@FreeBSD.org> | 2017-11-13 07:47:43 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2017-11-13 07:47:43 +0000 |
commit | 712dda7fb0b831afe1252e432db3fd5c42b702b2 (patch) | |
tree | 3402ddd430e6b3b2b5743c8ec5892d7f9d14da54 /sys/kern/kern_proc.c | |
parent | 691e6ea877bcb5bfc32cd17b9ff4ecada3fb93f9 (diff) | |
download | src-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.c | 2 |
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); |