summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-07-22 22:47:51 +0200
committerLennart Poettering <lennart@poettering.net>2009-07-22 22:47:51 +0200
commit2f54b5df183630bb284a16ed9be88279c8f0f0e4 (patch)
tree196c7a11c18948a1121d8b339b5620ed607dda3d /src
parent7e2afffb81ab8b495d4f769858a855c2df2c0610 (diff)
daemon: reset personality, to make the autospawn env cleaup complete
Diffstat (limited to 'src')
-rw-r--r--src/daemon/main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/daemon/main.c b/src/daemon/main.c
index eb378d24..c759df53 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -65,6 +65,10 @@
#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>
@@ -433,6 +437,12 @@ int main(int argc, char *argv[]) {
/* We might be autospawned, in which case have no idea in which
* 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_drop_root();
pa_close_all(passed_fd, -1);
pa_reset_sigs(-1);