S_ISGID
if ((mode & (S_ISUID | S_ISGID | S_ISTXT)) ||
fs->st_mode & ~(S_ISUID | S_ISGID));
fs->st_mode & ~(S_ISUID | S_ISGID));
fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX |
ts.st_mode &= S_ISUID | S_ISGID | S_ISVTX |
fs->st_mode &= ~(S_ISUID | S_ISGID);
else if (mode & S_ISGID)
if (oldmode & (S_ISUID | S_ISGID)) {
sbp->st_mode &= ~(S_ISUID | S_ISGID);
#define SETBITS (S_ISUID | S_ISGID)
return (s.st_mode & S_ISGID) != 0;
#define FILEMODEMASK (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO)
#define STANDARD_BITS (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO)
who |= S_ISGID|S_IRWXG;
perm |= S_ISUID|S_ISGID;
switch (mode & (S_IXGRP | S_ISGID)) {
case S_ISGID:
case S_IXGRP | S_ISGID:
if (!groupmember(cur_gid, cred) && (*cur_modep & S_ISGID))
*cur_modep &= ~(S_ISUID | S_ISGID);
#ifndef S_ISGID
#ifndef S_ISGID
#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
if (fnp->attr.va_mode & (S_ISUID | S_ISGID)) {
fnp->attr.va_mode &= ~(S_ISUID | S_ISGID);
if (node->tn_mode & (S_ISUID | S_ISGID)) {
node->tn_mode &= ~(S_ISUID | S_ISGID);
fs->st_mode &= S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO;
fs->st_mode &= ~(S_ISUID|S_ISGID);
(S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO);
sb.st_mode &= ~(S_ISUID|S_ISGID);
sb.st_mode &= S_ISUID | S_ISGID | S_IRWXU | S_IRWXG | S_IRWXO;
#define MBITS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)