diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2001-04-11 20:20:40 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2001-04-11 20:20:40 +0000 |
| commit | 130d0157d13bdaa424c0702fea915d1e2bdc6c77 (patch) | |
| tree | 7fed0190f65a62a603d6ff95ac200397cb62a14e | |
| parent | e5eac10b13aa6c6e9b8d62abb37ba5bf33d60ff1 (diff) | |
Notes
| -rw-r--r-- | sys/kern/kern_prot.c | 23 | ||||
| -rw-r--r-- | sys/kern/syscalls.master | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 8ced323613be4..003ff3b49d11f 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -44,6 +44,7 @@ */ #include "opt_compat.h" +#include "opt_global.h" #include <sys/param.h> #include <sys/acct.h> @@ -911,6 +912,28 @@ issetugid(p, uap) return (0); } +int +__setugid(p, uap) + struct proc *p; + struct __setugid_args *uap; +{ + +#ifdef REGRESSION + switch (uap->flag) { + case 0: + p->p_flag &= ~P_SUGID; + return (0); + case 1: + p->p_flag |= P_SUGID; + return (0); + default: + return (EINVAL); + } +#else /* !REGRESSION */ + return (ENOSYS); +#endif /* !REGRESSION */ +} + /* * Check if gid is a member of the group set. */ diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index aec2ea6706ba7..ad24185ad56f9 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -541,3 +541,4 @@ int iovcnt); } 373 STD BSD { int extattr_delete_fd(int fd, int attrnamespace, \ const char *attrname); } +374 STD BSD { int __setugid(int flag); } |
