summaryrefslogtreecommitdiff
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2001-10-09 16:56:29 +0000
committerRobert Watson <rwatson@FreeBSD.org>2001-10-09 16:56:29 +0000
commit32d186043b24a8d7ae504ba32f57f13f5d246785 (patch)
tree845383cdc1d460696af05b16cb585e06d8f45071 /sys/kern/kern_prot.c
parent5162c5cc1ec5700a96cb5b758c4baa8e6098dd86 (diff)
Notes
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index ed2965c6e1dd..bc42d54009ca 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -1534,6 +1534,12 @@ p_candebug(struct proc *p1, struct proc *p2)
{
int error;
+ if (!kern_unprivileged_procdebug_permitted) {
+ error = suser_xxx(NULL, p1, PRISON_ROOT);
+ if (error)
+ return (error);
+ }
+
if (p1 == p2)
return (0);
@@ -1547,8 +1553,9 @@ p_candebug(struct proc *p1, struct proc *p2)
if (p1->p_ucred->cr_uid != p2->p_ucred->cr_uid ||
p1->p_ucred->cr_uid != p2->p_ucred->cr_svuid ||
p1->p_ucred->cr_uid != p2->p_ucred->cr_ruid ||
- p2->p_flag & P_SUGID || !kern_unprivileged_procdebug_permitted) {
- if ((error = suser_xxx(0, p1, PRISON_ROOT)) != 0)
+ p2->p_flag & P_SUGID) {
+ error = suser_xxx(NULL, p1, PRISON_ROOT);
+ if (error)
return (error);
}