From df822f2606a5c56a8af5785d4e507aff2eeaaace Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 15 Jul 2006 23:00:46 +0000 Subject: We need xsetuid() and xsetgid() because per-user process resource limits can prevent a process from switching to a user that has too many processes, and when that happens WE'RE STILL ROOT. See http://lwn.net/Articles/190331/ --- libbb/xfuncs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libbb') diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index bcd0751ee..d843414f9 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -282,3 +282,15 @@ char *itoa(int n) return local_buf; } #endif + +#ifdef L_setuid +void xsetgid(gid_t gid) +{ + if (setgid(gid)) bb_error_msg_and_die("setgid"); +} + +void xsetuid(uid_t uid) +{ + if (setuid(uid)) bb_error_msg_and_die("setuid"); +} +#endif -- cgit v1.2.3