version 1.4, 1997/03/01 23:40:12 |
version 1.5, 2002/05/11 23:16:44 |
|
|
#endif |
#endif |
gid_t real_gid, effective_gid; |
gid_t real_gid, effective_gid; |
|
|
#define RELINQUISH_PRIVS { \ |
#define RELINQUISH_PRIVS do { \ |
real_uid = getuid(); \ |
real_uid = getuid(); \ |
effective_uid = geteuid(); \ |
effective_uid = geteuid(); \ |
real_gid = getgid(); \ |
real_gid = getgid(); \ |
effective_gid = getegid(); \ |
effective_gid = getegid(); \ |
setegid(real_gid); \ |
setegid(real_gid); \ |
seteuid(real_uid); \ |
seteuid(real_uid); \ |
} |
} while (0) |
|
|
#define RELINQUISH_PRIVS_ROOT(a, b) { \ |
#define RELINQUISH_PRIVS_ROOT(a, b) do { \ |
real_uid = (a); \ |
real_uid = (a); \ |
effective_uid = geteuid(); \ |
effective_uid = geteuid(); \ |
real_gid = (b); \ |
real_gid = (b); \ |
effective_gid = getegid(); \ |
effective_gid = getegid(); \ |
setegid(real_gid); \ |
setegid(real_gid); \ |
seteuid(real_uid); \ |
seteuid(real_uid); \ |
} |
} while (0) |
|
|
#define PRIV_START { \ |
#define PRIV_START do { \ |
seteuid(effective_uid); \ |
seteuid(effective_uid); \ |
setegid(effective_gid); \ |
setegid(effective_gid); \ |
} |
} while (0) |
|
|
#define PRIV_END { \ |
#define PRIV_END do { \ |
setegid(real_gid); \ |
setegid(real_gid); \ |
seteuid(real_uid); \ |
seteuid(real_uid); \ |
} |
} while (0) |
|
|
#endif |
#endif /* _PRIVS_H */ |