summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2011-08-18 22:20:45 +0000
committerjhb <jhb@FreeBSD.org>2011-08-18 22:20:45 +0000
commitc902e656105666eb86ca08b9d534253d3f831d46 (patch)
treea8ee9be64f5c495066e35ec20358a668de26cc4a /sys/kern/kern_proc.c
parent5384a68fd98b9d2c320112b1cc352611abe8a1df (diff)
downloadFreeBSD-src-c902e656105666eb86ca08b9d534253d3f831d46.zip
FreeBSD-src-c902e656105666eb86ca08b9d534253d3f831d46.tar.gz
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
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 91b14a9..c84c5ae 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)
OpenPOWER on IntegriCloud