mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
Make kern.proc.umask sysctl readonly.
Requested by: src MFC after: 1 week
This commit is contained in:
parent
6022f0bcb3
commit
e0fcf639d2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=232455
@ -2473,8 +2473,7 @@ sysctl_kern_proc_ps_strings(SYSCTL_HANDLER_ARGS)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This sysctl allows a process to retrieve or/and set umask of
|
* This sysctl allows a process to retrieve umask of another process.
|
||||||
* another process.
|
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
|
sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
|
||||||
@ -2488,9 +2487,6 @@ sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
|
|||||||
if (namelen != 1)
|
if (namelen != 1)
|
||||||
return (EINVAL);
|
return (EINVAL);
|
||||||
|
|
||||||
if (req->newptr != NULL && req->newlen != sizeof(fd_cmask))
|
|
||||||
return (EINVAL);
|
|
||||||
|
|
||||||
error = pget((pid_t)name[0], PGET_WANTREAD, &p);
|
error = pget((pid_t)name[0], PGET_WANTREAD, &p);
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
return (error);
|
return (error);
|
||||||
@ -2498,20 +2494,8 @@ sysctl_kern_proc_umask(SYSCTL_HANDLER_ARGS)
|
|||||||
FILEDESC_SLOCK(p->p_fd);
|
FILEDESC_SLOCK(p->p_fd);
|
||||||
fd_cmask = p->p_fd->fd_cmask;
|
fd_cmask = p->p_fd->fd_cmask;
|
||||||
FILEDESC_SUNLOCK(p->p_fd);
|
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);
|
PRELE(p);
|
||||||
|
error = SYSCTL_OUT(req, &fd_cmask, sizeof(fd_cmask));
|
||||||
return (error);
|
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,
|
CTLFLAG_MPSAFE, sysctl_kern_proc_ps_strings,
|
||||||
"Process ps_strings location");
|
"Process ps_strings location");
|
||||||
|
|
||||||
static SYSCTL_NODE(_kern_proc, KERN_PROC_UMASK, umask, CTLFLAG_RW |
|
static SYSCTL_NODE(_kern_proc, KERN_PROC_UMASK, umask, CTLFLAG_RD |
|
||||||
CTLFLAG_ANYBODY | CTLFLAG_MPSAFE, sysctl_kern_proc_umask,
|
CTLFLAG_MPSAFE, sysctl_kern_proc_umask, "Process umask");
|
||||||
"Process umask");
|
|
||||||
|
Loading…
Reference in New Issue
Block a user