daemon: clean up environment when forking off children

This commit is contained in:
Lennart Poettering 2009-09-02 00:42:54 +02:00
parent 5f929963d1
commit a8c0f65fae
2 changed files with 10 additions and 2 deletions

View file

@ -706,7 +706,7 @@ int main(int argc, char *argv[]) {
#endif #endif
} }
pa_set_env("PULSE_INTERNAL", "1"); pa_set_env_and_record("PULSE_INTERNAL", "1");
pa_assert_se(chdir("/") == 0); pa_assert_se(chdir("/") == 0);
umask(0022); umask(0022);
@ -721,7 +721,7 @@ int main(int argc, char *argv[]) {
if (change_user() < 0) if (change_user() < 0)
goto finish; 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_info(_("This is PulseAudio %s"), PACKAGE_VERSION);
pa_log_debug(_("Compilation host: %s"), CANONICAL_HOST); pa_log_debug(_("Compilation host: %s"), CANONICAL_HOST);
@ -968,6 +968,9 @@ finish:
if (valid_pid_file) if (valid_pid_file)
pa_pid_file_remove(); pa_pid_file_remove();
/* This has no real purpose except making things valgrind-clean */
pa_unset_env_recorded();
#ifdef OS_IS_WIN32 #ifdef OS_IS_WIN32
WSACleanup(); WSACleanup();
#endif #endif

View file

@ -86,6 +86,11 @@ int pa_start_child_for_read(const char *name, const char *argv1, pid_t *pid) {
pa_reset_sigs(-1); pa_reset_sigs(-1);
pa_unblock_sigs(-1); pa_unblock_sigs(-1);
pa_reset_priority(); 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 #ifdef PR_SET_PDEATHSIG
/* On Linux we can use PR_SET_PDEATHSIG to have the helper /* On Linux we can use PR_SET_PDEATHSIG to have the helper