mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-01 22:58:47 -04:00
daemon: reset gids too, not just uids
This commit is contained in:
parent
fecd0dc801
commit
a1598c742e
1 changed files with 8 additions and 0 deletions
|
|
@ -57,21 +57,29 @@ void pa_drop_root(void) {
|
|||
|
||||
#ifdef HAVE_GETUID
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
|
||||
pa_log_debug(_("Cleaning up privileges."));
|
||||
uid = getuid();
|
||||
gid = getgid();
|
||||
|
||||
#if defined(HAVE_SETRESUID)
|
||||
pa_assert_se(setresuid(uid, uid, uid) >= 0);
|
||||
pa_assert_se(setresgid(gid, gid, gid) >= 0);
|
||||
#elif defined(HAVE_SETREUID)
|
||||
pa_assert_se(setreuid(uid, uid) >= 0);
|
||||
pa_assert_se(setregid(gid, gid) >= 0);
|
||||
#else
|
||||
pa_assert_se(setuid(uid) >= 0);
|
||||
pa_assert_se(seteuid(uid) >= 0);
|
||||
pa_assert_se(setgid(gid) >= 0);
|
||||
pa_assert_se(setegid(gid) >= 0);
|
||||
#endif
|
||||
|
||||
pa_assert_se(getuid() == uid);
|
||||
pa_assert_se(geteuid() == uid);
|
||||
pa_assert_se(getgid() == gid);
|
||||
pa_assert_se(getegid() == gid);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue