pub fn seteuid(euid: uid_t) usize euid: uid_t2286
2287
2288
2289
2290
2291
2292
2293
2294
2295pub fn seteuid(euid: uid_t) usize {
// We use setresuid here instead of setreuid to ensure that the saved uid
// is not changed. This is what musl and recent glibc versions do as well.
//
// The setresuid(2) man page says that if -1 is passed the corresponding
// id will not be changed. Since uid_t is unsigned, this wraps around to the
// max value in C.
comptime assert(@typeInfo(uid_t) == .int and @typeInfo(uid_t).int.signedness == .unsigned);
return setresuid(maxInt(uid_t), euid, maxInt(uid_t));
}