X-Git-Url: https://git.saurik.com/apple/system_cmds.git/blobdiff_plain/fc6d9e4b3869b070d680256cdce0a1acf93ae569..b58caf92d598c70ddd398b3909b0a2b8b5a110e1:/at.tproj/privs.h diff --git a/at.tproj/privs.h b/at.tproj/privs.h index 79cc693..4a43b6c 100644 --- a/at.tproj/privs.h +++ b/at.tproj/privs.h @@ -1,5 +1,5 @@ -/* - * privs.h - header for privileged operations +/* + * privs.h - header for privileged operations * Copyright (C) 1993 Thomas Koenig * * Redistribution and use in source and binary forms, with or without @@ -64,7 +64,7 @@ extern #endif uid_t real_uid, effective_uid; -#ifndef MAIN +#ifndef MAIN extern #endif gid_t real_gid, effective_gid; @@ -74,8 +74,8 @@ gid_t real_gid, effective_gid; effective_uid = geteuid(); \ real_gid = getgid(); \ effective_gid = getegid(); \ - setegid(real_gid); \ - seteuid(real_uid); \ + if (setegid(real_gid)<0) perr("cannot setegid"); \ + if (seteuid(real_uid)<0) perr("cannot seteuid"); \ } #define RELINQUISH_PRIVS_ROOT(a, b) { \ @@ -83,8 +83,8 @@ gid_t real_gid, effective_gid; effective_uid = geteuid(); \ real_gid = (b); \ effective_gid = getegid(); \ - setegid(real_gid); \ - seteuid(real_uid); \ + if (setegid(real_gid)<0) perr("cannot setegid"); \ + if (seteuid(real_uid)<0) perr("cannot seteuid"); \ } #define PRIV_START { \ @@ -103,8 +103,8 @@ gid_t real_gid, effective_gid; PRIV_START \ effective_uid = (a); \ effective_gid = (b); \ - setregid((gid_t)-1, effective_gid); \ - setreuid((uid_t)-1, effective_uid); \ + if (setegid(effective_gid)<0) perr("cannot setegid"); \ + if (seteuid(effective_uid)<0) perr("cannot seteuid"); \ PRIV_END \ } #endif