From 9a9309f5938ecc2b79af72f1921ebd9178c029e4 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 26 Nov 2004 00:07:24 +0000 Subject: * use setresuid() instead of setruid() if available * if fix for the non-fp resampler git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@314 fefdeb5f-60dc-0310-8127-8f9354f1896f --- polyp/caps.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'polyp/caps.c') diff --git a/polyp/caps.c b/polyp/caps.c index 34d97eb5..93fca89f 100644 --- a/polyp/caps.c +++ b/polyp/caps.c @@ -23,6 +23,9 @@ #include #endif +/* setresuid() is only available on GNU */ +#define _GNU_SOURCE + #include #include #include @@ -41,13 +44,17 @@ void pa_drop_root(void) { if (uid == 0 || geteuid() != 0) return; - -/* pa_log(__FILE__": dropping root rights.\n"); */ - - setreuid(uid, uid); -/* setuid(uid); - seteuid(uid);*/ + /* pa_log(__FILE__": dropping root rights.\n"); */ + +#if defined(HAVE_SETRESUID) + setresuid(uid, uid, uid); +#elif defined(HAVE_SETREUID) + setreuid(uid, uid); +#else + setuid(uid); + seteuid(uid); +#endif } #ifdef HAVE_SYS_CAPABILITY_H -- cgit