mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05: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
|
#ifdef HAVE_GETUID
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
|
gid_t gid;
|
||||||
|
|
||||||
pa_log_debug(_("Cleaning up privileges."));
|
pa_log_debug(_("Cleaning up privileges."));
|
||||||
uid = getuid();
|
uid = getuid();
|
||||||
|
gid = getgid();
|
||||||
|
|
||||||
#if defined(HAVE_SETRESUID)
|
#if defined(HAVE_SETRESUID)
|
||||||
pa_assert_se(setresuid(uid, uid, uid) >= 0);
|
pa_assert_se(setresuid(uid, uid, uid) >= 0);
|
||||||
|
pa_assert_se(setresgid(gid, gid, gid) >= 0);
|
||||||
#elif defined(HAVE_SETREUID)
|
#elif defined(HAVE_SETREUID)
|
||||||
pa_assert_se(setreuid(uid, uid) >= 0);
|
pa_assert_se(setreuid(uid, uid) >= 0);
|
||||||
|
pa_assert_se(setregid(gid, gid) >= 0);
|
||||||
#else
|
#else
|
||||||
pa_assert_se(setuid(uid) >= 0);
|
pa_assert_se(setuid(uid) >= 0);
|
||||||
pa_assert_se(seteuid(uid) >= 0);
|
pa_assert_se(seteuid(uid) >= 0);
|
||||||
|
pa_assert_se(setgid(gid) >= 0);
|
||||||
|
pa_assert_se(setegid(gid) >= 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pa_assert_se(getuid() == uid);
|
pa_assert_se(getuid() == uid);
|
||||||
pa_assert_se(geteuid() == uid);
|
pa_assert_se(geteuid() == uid);
|
||||||
|
pa_assert_se(getgid() == gid);
|
||||||
|
pa_assert_se(getegid() == gid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SYS_PRCTL_H
|
#ifdef HAVE_SYS_PRCTL_H
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue