summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2011-04-02 17:04:35 +0000
committerguenther <guenther@openbsd.org>2011-04-02 17:04:35 +0000
commitbfb8af8fd908165924c3da75dcad45cbc5d95125 (patch)
tree2ff87f12229de930c37445002878d332e70862ac /sys/kern/kern_prot.c
parentConstrain the buffer cache to use only the dma reachable region of memory. (diff)
downloadwireguard-openbsd-bfb8af8fd908165924c3da75dcad45cbc5d95125.tar.xz
wireguard-openbsd-bfb8af8fd908165924c3da75dcad45cbc5d95125.zip
Move P_SUGID and P_SUGIDEXEC from struct proc to struct process, so
that you can't evade the checks by doing the dirty work in an rthread ok blambert@, deraadt@
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index a34714c4ba5..5b058ee605b 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_prot.c,v 1.46 2010/07/26 01:56:27 guenther Exp $ */
+/* $OpenBSD: kern_prot.c,v 1.47 2011/04/02 17:04:35 guenther Exp $ */
/* $NetBSD: kern_prot.c,v 1.33 1996/02/09 18:59:42 christos Exp $ */
/*
@@ -160,7 +160,7 @@ sys_geteuid(struct proc *p, void *v, register_t *retval)
int
sys_issetugid(struct proc *p, void *v, register_t *retval)
{
- if (p->p_flag & P_SUGIDEXEC)
+ if (p->p_p->ps_flags & PS_SUGIDEXEC)
*retval = 1;
else
*retval = 0;
@@ -404,7 +404,7 @@ sys_setresuid(struct proc *p, void *v, register_t *retval)
if (suid != (uid_t)-1 && suid != pc->p_svuid)
pc->p_svuid = suid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -498,7 +498,7 @@ sys_setresgid(struct proc *p, void *v, register_t *retval)
if (sgid != (gid_t)-1)
pc->p_svgid = sgid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -607,7 +607,7 @@ sys_setuid(struct proc *p, void *v, register_t *retval)
*/
pc->pc_ucred = crcopy(pc->pc_ucred);
pc->pc_ucred->cr_uid = uid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -636,7 +636,7 @@ sys_seteuid(struct proc *p, void *v, register_t *retval)
*/
pc->pc_ucred = crcopy(pc->pc_ucred);
pc->pc_ucred->cr_uid = euid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -675,7 +675,7 @@ sys_setgid(struct proc *p, void *v, register_t *retval)
*/
pc->pc_ucred = crcopy(pc->pc_ucred);
pc->pc_ucred->cr_gid = gid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -704,7 +704,7 @@ sys_setegid(struct proc *p, void *v, register_t *retval)
*/
pc->pc_ucred = crcopy(pc->pc_ucred);
pc->pc_ucred->cr_gid = egid;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}
@@ -731,7 +731,7 @@ sys_setgroups(struct proc *p, void *v, register_t *retval)
if (error)
return (error);
pc->pc_ucred->cr_ngroups = ngrp;
- atomic_setbits_int(&p->p_flag, P_SUGID);
+ atomic_setbits_int(&p->p_p->ps_flags, PS_SUGID);
return (0);
}