summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authortrociny <trociny@FreeBSD.org>2012-03-03 11:53:35 +0000
committertrociny <trociny@FreeBSD.org>2012-03-03 11:53:35 +0000
commitf33151692182e79b2753c1ed73f27d3a5079adbe (patch)
treeefb0b7cc61c25ed1e1bef891a78d0cc88eee984b /sys/kern/kern_proc.c
parent15048326816f681f9e618227d01061b26b228a6a (diff)
downloadFreeBSD-src-f33151692182e79b2753c1ed73f27d3a5079adbe.zip
FreeBSD-src-f33151692182e79b2753c1ed73f27d3a5079adbe.tar.gz
Make kern.proc.umask sysctl readonly.
Requested by: src MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c25
1 files changed, 4 insertions, 21 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 50e5368..b922cd2 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -2473,8 +2473,7 @@ sysctl_kern_proc_ps_strings(SYSCTL_HANDLER_ARGS)
}
/*
- * This sysctl allows a process to retrieve or/and set umask of
- * another process.
+ * This sysctl allows a process to retrieve umask of another process.
*/
static int
sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
@@ -2488,9 +2487,6 @@ sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
if (namelen != 1)
return (EINVAL);
- if (req->newptr != NULL && req->newlen != sizeof(fd_cmask))
- return (EINVAL);
-
error = pget((pid_t)name[0], PGET_WANTREAD, &p);
if (error != 0)
return (error);
@@ -2498,20 +2494,8 @@ sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
FILEDESC_SLOCK(p->p_fd);
fd_cmask = p->p_fd->fd_cmask;
FILEDESC_SUNLOCK(p->p_fd);
- error = SYSCTL_OUT(req, &fd_cmask, sizeof(fd_cmask));
- if (error != 0)
- goto errout;
-
- if (req->newptr != NULL) {
- error = SYSCTL_IN(req, &fd_cmask, sizeof(fd_cmask));
- if (error == 0) {
- FILEDESC_XLOCK(p->p_fd);
- p->p_fd->fd_cmask = fd_cmask & ALLPERMS;
- FILEDESC_XUNLOCK(p->p_fd);
- }
- }
-errout:
PRELE(p);
+ error = SYSCTL_OUT(req, &fd_cmask, sizeof(fd_cmask));
return (error);
}
@@ -2617,6 +2601,5 @@ static SYSCTL_NODE(_kern_proc, KERN_PROC_PS_STRINGS, ps_strings, CTLFLAG_RD |
CTLFLAG_MPSAFE, sysctl_kern_proc_ps_strings,
"Process ps_strings location");
-static SYSCTL_NODE(_kern_proc, KERN_PROC_UMASK, umask, CTLFLAG_RW |
- CTLFLAG_ANYBODY | CTLFLAG_MPSAFE, sysctl_kern_proc_umask,
- "Process umask");
+static SYSCTL_NODE(_kern_proc, KERN_PROC_UMASK, umask, CTLFLAG_RD |
+ CTLFLAG_MPSAFE, sysctl_kern_proc_umask, "Process umask");
OpenPOWER on IntegriCloud