S_ISUID
#define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)
if (((mode) & (S_ISGID|S_ISUID)) != 0) \
(mode & S_ISUID) != 0,
(mode & S_ISUID) != 0,
Gen.g_mode &= ~S_ISUID;
if ((S_ISUID & Gen.g_mode) == S_ISUID)
mode &= ~S_ISUID;
#define ATMODE (S_ISUID | S_IRUSR | S_IRGRP | S_IROTH)
#define ISUID S_ISUID /* mode for verifing at jobs */
if (sb->st_mode & S_ISUID)
static long special[] = { S_ISUID, 'S', 's',
#define P_A (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* allbits */
#define P_U (S_ISUID|S_ISVTX|S_IRWXU) /* user */
#if S_ISUID != 04000 || S_ISGID != 02000 || \
S_ISGID, S_ISUID,
return (S_ISUID);
return (nowho ? S_ISGID : S_ISGID|S_ISUID);
static int m2[] = { 3, S_ISUID|S_IXUSR, 's', S_IXUSR,
'x', S_ISUID, 'S', '-' };
return (!S_ISLNK(mode) && (mode & S_ISUID));
if (mode & (S_ISUID | S_ISGID)) {
mode &= ~S_ISUID & ~S_ISGID;
#define MODEBITS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
if (mode & (S_ISUID | S_ISGID)) {
mode &= ~S_ISUID & ~S_ISGID;
if ((st->st_mode & (S_ISUID | S_ISGID)) != 0) {
if (bitset(S_ISUID, st->st_mode))
if (bitset(S_ISUID, st->st_mode) && st->st_uid != 0 &&
else if (bitset(S_ISUID, stb.st_mode))
mode &= ~(S_ISGID|S_ISUID);
else if (bitset(S_ISUID, mode))
int m3[] = {2, S_ISUID, 's', S_IXUSR, 'x', '-'};
fileptr->ar_mode &= ~S_ISUID;
(status.st_uid == 0) && (status.st_mode & S_ISUID))) {
return(ftype(nxtarg(0), S_ISUID));
el_ent->cf_ent.ainfo.mode &= ~(S_ISUID | S_ISGID);
(ent->ainfo.mode & S_ISUID));
if ((S_ISUID & Gen.g_mode) == S_ISUID)
(sp->st_mode & S_ISUID) == S_ISUID)
MODEMASK & sp->st_mode & ~S_ISUID);
switch (mode & (S_ISUID|S_IXUSR)) {
case S_ISUID|S_IXUSR:
case S_ISUID:
#define UFLAG S_ISUID /* setuid */
if (tempmode_t & (~(S_IAMB | S_ISUID | S_ISGID | S_ISVTX))) {
S_ISUID | S_ISGID | S_ISVTX)) {
{ 3, S_ISUID|(S_IEXEC>>0), 's', S_IEXEC>>0, 'x', S_ISUID, 'S', '-' };
return (ftype(nxtarg(0), S_ISUID));
on_client &= ~(S_ISUID|S_ISGID);
omode &= ~(S_ISUID|S_ISGID);
(tp->tn_mode & (S_ISUID | S_ISGID)) &&
(tp->tn_mode & S_ISUID) != 0 && tp->tn_uid == 0)) {
tp->tn_mode &= ~(S_ISUID | S_ISGID);
mode = (fmode & (S_IFMT | S_ISUID | S_ISGID | S_ISVTX));
(zp->z_mode & (S_ISUID | S_ISGID)) != 0 &&
((zp->z_mode & S_ISUID) != 0 && zp->z_uid == 0)) != 0) {
if ((zp->z_mode & (S_ISUID | S_ISGID)) != 0) {
zp->z_mode &= ~(S_ISUID | S_ISGID);
if ((vap->va_mode & (S_ISUID | S_ISGID)) != 0 &&
(vap->va_mode & S_ISUID) != 0 &&
vap->va_mode &= ~(S_ISUID|S_ISGID);
if ((vap->va_mode & S_ISUID) != 0 &&