diff options
author | Colin Guthrie <pulse@colin.guthr.ie> | 2008-08-03 19:56:49 +0100 |
---|---|---|
committer | Colin Guthrie <pulse@colin.guthr.ie> | 2008-08-03 19:56:49 +0100 |
commit | 5744237a066186be305be9ea3ecb3ccccadcceca (patch) | |
tree | 6a08957a66fb308a8f1b37232d9b2d24a246e394 /src/daemon/caps.c | |
parent | b30a5d601eaffd98914ca0b9fdecd863eade0b4f (diff) | |
parent | 04ffac57a67eee9640f248b6fab33ee8367b0eab (diff) |
Merge branch 'master' of git://git.0pointer.de/pulseaudio
Diffstat (limited to 'src/daemon/caps.c')
-rw-r--r-- | src/daemon/caps.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/daemon/caps.c b/src/daemon/caps.c index ae07119c..8a49e373 100644 --- a/src/daemon/caps.c +++ b/src/daemon/caps.c @@ -109,6 +109,14 @@ void pa_limit_caps(void) { void pa_drop_caps(void) { cap_t caps; +#ifndef __OPTIMIZE__ + /* Valgrind doesn't not know set_caps, so we bypass it here -- but + * only in development builts.*/ + + if (getenv("VALGRIND") && !pa_have_caps()) + return; +#endif + pa_assert_se(prctl(PR_SET_KEEPCAPS, 0, 0, 0, 0) == 0); pa_assert_se(caps = cap_init()); @@ -123,7 +131,12 @@ pa_bool_t pa_have_caps(void) { cap_t caps; cap_flag_value_t flag = CAP_CLEAR; +#ifdef __OPTIMIZE__ pa_assert_se(caps = cap_get_proc()); +#else + if (!(caps = cap_get_proc())) + return FALSE; +#endif pa_assert_se(cap_get_flag(caps, CAP_SYS_NICE, CAP_EFFECTIVE, &flag) >= 0); pa_assert_se(cap_free(caps) == 0); |