mirror of
https://github.com/sheumann/hush.git
synced 2025-01-09 09:31:07 +00:00
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/
This commit is contained in:
parent
1870737480
commit
df822f2606
@ -185,6 +185,8 @@ extern void utoa_to_buf(unsigned n, char *buf, unsigned buflen);
|
|||||||
extern char *utoa(unsigned n);
|
extern char *utoa(unsigned n);
|
||||||
extern void itoa_to_buf(int n, char *buf, unsigned buflen);
|
extern void itoa_to_buf(int n, char *buf, unsigned buflen);
|
||||||
extern char *itoa(int n);
|
extern char *itoa(int n);
|
||||||
|
extern void xsetgid(gid_t gid);
|
||||||
|
extern void xsetuid(uid_t uid);
|
||||||
|
|
||||||
#define BB_GETOPT_ERROR 0x80000000UL
|
#define BB_GETOPT_ERROR 0x80000000UL
|
||||||
extern const char *bb_opt_complementally;
|
extern const char *bb_opt_complementally;
|
||||||
|
@ -282,3 +282,15 @@ char *itoa(int n)
|
|||||||
return local_buf;
|
return local_buf;
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
||||||
|
Loading…
Reference in New Issue
Block a user