diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/daemon/main.c | 10 | ||||
| -rw-r--r-- | src/pulsecore/core-util.c | 13 | ||||
| -rw-r--r-- | src/pulsecore/core-util.h | 2 | 
3 files changed, 16 insertions, 9 deletions
| diff --git a/src/daemon/main.c b/src/daemon/main.c index 7a951954..355b0d5c 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -65,10 +65,6 @@  #include <dbus/dbus.h>  #endif -#ifdef __linux__ -#include <sys/personality.h> -#endif -  #include <pulse/mainloop.h>  #include <pulse/mainloop-signal.h>  #include <pulse/timeval.h> @@ -446,11 +442,7 @@ int main(int argc, char *argv[]) {       * context we have been started. Let's cleanup our execution       * context as good as possible */ -#ifdef __linux__ -    if (personality(PER_LINUX) < 0) -        pa_log_warn("Uh, personality() failed: %s", pa_cstrerror(errno)); -#endif - +    pa_reset_personality();      pa_drop_root();      pa_close_all(passed_fd, -1);      pa_reset_sigs(-1); diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index d4baf697..6494244e 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -101,6 +101,10 @@  #include "rtkit.h"  #endif +#ifdef __linux__ +#include <sys/personality.h> +#endif +  #include <pulse/xmalloc.h>  #include <pulse/util.h>  #include <pulse/utf8.h> @@ -2855,3 +2859,12 @@ size_t pa_pipe_buf(int fd) {      return 4096;  #endif  } + +void pa_reset_personality(void) { + +#ifdef __linux__ +    if (personality(PER_LINUX) < 0) +        pa_log_warn("Uh, personality() failed: %s", pa_cstrerror(errno)); +#endif + +} diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index 6de4b771..3d3aec71 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -241,4 +241,6 @@ char* pa_maybe_prefix_path(const char *path, const char *prefix);  /* Returns size of the specified pipe or 4096 on failure */  size_t pa_pipe_buf(int fd); +void pa_reset_personality(void); +  #endif | 
