summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2003-09-19 14:16:50 +0000
committertjr <tjr@FreeBSD.org>2003-09-19 14:16:50 +0000
commit3bce48c27b3b6680e3f8bbe3c37a0e2e360408d0 (patch)
tree7f28c40499906e361d56c20f630bbfaabc50f45a /sys/kern/kern_proc.c
parent6605c73f36aa7f471f0f348c683689ecc3c8eec2 (diff)
downloadFreeBSD-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.c24
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 */
OpenPOWER on IntegriCloud