diff options
author | tjr <tjr@FreeBSD.org> | 2003-09-19 14:16:50 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2003-09-19 14:16:50 +0000 |
commit | 3bce48c27b3b6680e3f8bbe3c37a0e2e360408d0 (patch) | |
tree | 7f28c40499906e361d56c20f630bbfaabc50f45a /sys/kern/kern_proc.c | |
parent | 6605c73f36aa7f471f0f348c683689ecc3c8eec2 (diff) | |
download | FreeBSD-src-3bce48c27b3b6680e3f8bbe3c37a0e2e360408d0.zip FreeBSD-src-3bce48c27b3b6680e3f8bbe3c37a0e2e360408d0.tar.gz |
Allow the KERN_PROC_PROC sysctl to be used without the useless 4th
name component, for consistency with KERN_PROC_ALL. Support for the
4-argument form will be removed some time before 5.2-R.
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r-- | sys/kern/kern_proc.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index 84ed43c..c995f31 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -919,12 +919,24 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS) error = sysctl_out_proc(p, req, KERN_PROC_NOTHREADS); return (error); } - if (oidp->oid_number == KERN_PROC_ALL && !namelen) - ; - else if (oidp->oid_number != KERN_PROC_ALL && namelen == 1) - ; - else - return (EINVAL); + + switch (oidp->oid_number) { + case KERN_PROC_ALL: + case KERN_PROC_PROC: + /* + * XXX Temporarily disabled for compat with old userland + * that passes an extra unused argument to KERN_PROC_PROC. + */ +#if 0 + if (namelen != 0) + return (EINVAL); +#endif + break; + default: + if (namelen != 1) + return (EINVAL); + break; + } if (!req->oldptr) { /* overestimate by 5 procs */ |