diff options
author | David Greenman <dg@FreeBSD.org> | 1997-02-19 17:58:29 +0000 |
---|---|---|
committer | David Greenman <dg@FreeBSD.org> | 1997-02-19 17:58:29 +0000 |
commit | ce6a5b7bc2744b5584d690bb369e77397ff5226d (patch) | |
tree | 1b0d14b293912dbcdffcfbb6205ff1987f4fa7a9 | |
parent | c2b805c3e2dcc76023543d09fedb3e373e49bafc (diff) |
Brought in fix from rev 1.51: don't clear P_SUGID if various {u,g}id don't
match.
Notes
Notes:
svn path=/stable/2.1/; revision=22935
-rw-r--r-- | sys/kern/kern_exec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index c3235137f4f1..52362105719f 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_exec.c,v 1.21.4.5 1996/06/03 04:09:36 davidg Exp $ + * $Id: kern_exec.c,v 1.21.4.6 1996/06/04 02:11:37 davidg Exp $ */ #include <sys/param.h> @@ -259,7 +259,9 @@ interpret: p->p_ucred->cr_groups[0] = attr.va_gid; p->p_flag |= P_SUGID; } else { - p->p_flag &= ~P_SUGID; + if (p->p_ucred->cr_uid == p->p_cred->p_ruid && + p->p_ucred->cr_gid == p->p_cred->p_rgid) + p->p_flag &= ~P_SUGID; } /* |