diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-09-02 00:42:54 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-09-02 00:42:54 +0200 |
commit | a8c0f65faecd7058de3bd704ed90985ae2c842f0 (patch) | |
tree | db5571ea2832ea488ec5057c07f02262dd17c503 | |
parent | 5f929963d12c70193a923d620177125d8608f18a (diff) |
daemon: clean up environment when forking off children
-rw-r--r-- | src/daemon/main.c | 7 | ||||
-rw-r--r-- | src/pulsecore/start-child.c | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/daemon/main.c b/src/daemon/main.c index e44892da..e22e465a 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -706,7 +706,7 @@ int main(int argc, char *argv[]) { #endif } - pa_set_env("PULSE_INTERNAL", "1"); + pa_set_env_and_record("PULSE_INTERNAL", "1"); pa_assert_se(chdir("/") == 0); umask(0022); @@ -721,7 +721,7 @@ int main(int argc, char *argv[]) { if (change_user() < 0) goto finish; - pa_set_env("PULSE_SYSTEM", conf->system_instance ? "1" : "0"); + pa_set_env_and_record("PULSE_SYSTEM", conf->system_instance ? "1" : "0"); pa_log_info(_("This is PulseAudio %s"), PACKAGE_VERSION); pa_log_debug(_("Compilation host: %s"), CANONICAL_HOST); @@ -968,6 +968,9 @@ finish: if (valid_pid_file) pa_pid_file_remove(); + /* This has no real purpose except making things valgrind-clean */ + pa_unset_env_recorded(); + #ifdef OS_IS_WIN32 WSACleanup(); #endif diff --git a/src/pulsecore/start-child.c b/src/pulsecore/start-child.c index b3bce131..4a70aea1 100644 --- a/src/pulsecore/start-child.c +++ b/src/pulsecore/start-child.c @@ -86,6 +86,11 @@ int pa_start_child_for_read(const char *name, const char *argv1, pid_t *pid) { pa_reset_sigs(-1); pa_unblock_sigs(-1); pa_reset_priority(); + pa_unset_env_recorded(); + + /* Make sure our children are not influenced by the + * LD_BIND_NOW we set for ourselves. */ + unsetenv("LD_BIND_NOW"); #ifdef PR_SET_PDEATHSIG /* On Linux we can use PR_SET_PDEATHSIG to have the helper |