* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/usr.bin/at/privs.h,v 1.8 2001/09/04 16:15:51 ru Exp $
+ * $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/usr.bin/at/privs.h,v 1.10 2011/11/06 20:30:21 ed Exp $
*/
#ifndef _PRIVS_H
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) { \
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 { \
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