diff options
author | John Baldwin <jhb@FreeBSD.org> | 2011-08-18 22:20:45 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2011-08-18 22:20:45 +0000 |
commit | f55d3fbe8438d73a393729763a4abca5b72233a2 (patch) | |
tree | a8ee9be64f5c495066e35ec20358a668de26cc4a /sys | |
parent | 672d7ddbcc406da93d22b0e74ee5d70659bd69ef (diff) | |
download | src-f55d3fbe8438d73a393729763a4abca5b72233a2.tar.gz src-f55d3fbe8438d73a393729763a4abca5b72233a2.zip |
One of the general principles of the sysctl(3) API is that a user can
query the needed size for a sysctl result by passing in a NULL old
pointer and a valid oldsize. The kern.proc.args sysctl handler broke
this assumption by not calling SYSCTL_OUT() if the old pointer was
NULL.
Approved by: re (kib)
MFC after: 3 days
Notes
Notes:
svn path=/head/; revision=224986
Diffstat (limited to 'sys')
-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 91b14a931505..c84c5ae776db 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -1391,7 +1391,7 @@ sysctl_kern_proc_args(SYSCTL_HANDLER_ARGS) pa = p->p_args; pargs_hold(pa); PROC_UNLOCK(p); - if (req->oldptr != NULL && pa != NULL) + if (pa != NULL) error = SYSCTL_OUT(req, pa->ar_args, pa->ar_length); pargs_drop(pa); if (error != 0 || req->newptr == NULL) |