From 65e7bc18a9a7b89e55b87a74ae47d45269b51847 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 30 Oct 2009 03:32:38 +0100 Subject: use cloexec wrappers wherever applicable --- src/daemon/cpulimit.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/daemon') diff --git a/src/daemon/cpulimit.c b/src/daemon/cpulimit.c index c2877ecf..f5042a75 100644 --- a/src/daemon/cpulimit.c +++ b/src/daemon/cpulimit.c @@ -188,15 +188,13 @@ int pa_cpu_limit_init(pa_mainloop_api *m) { last_time = pa_rtclock_now(); /* Prepare the main loop pipe */ - if (pipe(the_pipe) < 0) { + if (pa_pipe_cloexec(the_pipe) < 0) { pa_log("pipe() failed: %s", pa_cstrerror(errno)); return -1; } pa_make_fd_nonblock(the_pipe[0]); pa_make_fd_nonblock(the_pipe[1]); - pa_make_fd_cloexec(the_pipe[0]); - pa_make_fd_cloexec(the_pipe[1]); api = m; io_event = api->io_new(m, the_pipe[0], PA_IO_EVENT_INPUT, callback, NULL); -- cgit From 168be3830ae291dd819abebec813f76151487bb3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 30 Oct 2009 04:54:19 +0100 Subject: use pa_fopen_cloexec() where applicable --- src/daemon/daemon-conf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/daemon') diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index 571faae4..bfd5c118 100644 --- a/src/daemon/daemon-conf.c +++ b/src/daemon/daemon-conf.c @@ -577,7 +577,7 @@ int pa_daemon_conf_load(pa_daemon_conf *c, const char *filename) { c->config_file = NULL; f = filename ? - fopen(c->config_file = pa_xstrdup(filename), "r") : + pa_fopen_cloexec(c->config_file = pa_xstrdup(filename), "r") : pa_open_config_file(DEFAULT_CONFIG_FILE, DEFAULT_CONFIG_FILE_USER, ENV_CONFIG_FILE, &c->config_file); if (!f && errno != ENOENT) { @@ -652,7 +652,7 @@ FILE *pa_daemon_conf_open_default_script_file(pa_daemon_conf *c) { else f = pa_open_config_file(DEFAULT_SCRIPT_FILE, DEFAULT_SCRIPT_FILE_USER, ENV_SCRIPT_FILE, &c->default_script_file); } else - f = fopen(c->default_script_file, "r"); + f = pa_fopen_cloexec(c->default_script_file, "r"); return f; } -- cgit From aa8ce5bb9b159abb2ffb0f43996340566fc2e9c6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 30 Oct 2009 05:08:48 +0100 Subject: daemon: don't crash if pa_realpath() fails --- src/daemon/main.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/daemon') diff --git a/src/daemon/main.c b/src/daemon/main.c index 9e5647a8..576fc3e6 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -425,21 +425,24 @@ int main(int argc, char *argv[]) { pa_set_env("LD_BIND_NOW", "1"); - canonical_rp = pa_realpath(PA_BINARY); + if (!(canonical_rp = pa_realpath(PA_BINARY))) { - if ((rp = pa_readlink("/proc/self/exe"))) { + if ((rp = pa_readlink("/proc/self/exe"))) { - if (pa_streq(rp, canonical_rp)) - pa_assert_se(execv(rp, argv) == 0); - else - pa_log_warn("/proc/self/exe does not point to %s, cannot self execute. Are you playing games?", canonical_rp); + if (pa_streq(rp, canonical_rp)) + pa_assert_se(execv(rp, argv) == 0); + else + pa_log_warn("/proc/self/exe does not point to %s, cannot self execute. Are you playing games?", canonical_rp); - pa_xfree(rp); + pa_xfree(rp); - } else - pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?"); + } else + pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?"); - pa_xfree(canonical_rp); + pa_xfree(canonical_rp); + + } else + pa_log_warn("Couldn't canonicalize binary path, cannot self execute."); } #endif -- cgit From 366ab9633be76c920738dc806607d7656dda5191 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 30 Oct 2009 05:20:00 +0100 Subject: git: ignore kde related files --- src/daemon/.gitignore | 1 + 1 file changed, 1 insertion(+) (limited to 'src/daemon') diff --git a/src/daemon/.gitignore b/src/daemon/.gitignore index 0efa55ba..54e4299b 100644 --- a/src/daemon/.gitignore +++ b/src/daemon/.gitignore @@ -1,2 +1,3 @@ org.pulseaudio.policy pulseaudio.desktop +pulseaudio-kde.desktop -- cgit From 5c576507693c1d7c4aa8c51656b37c91bcf1289b Mon Sep 17 00:00:00 2001 From: David Yoder Date: Fri, 30 Oct 2009 09:54:08 -0500 Subject: daemon: realpath segfault fix Lennart, Apparently I was debugging this at the same time as you. I can't figure out why my Fedora 11 install with glibc-2.10 has a glibc realpath that doesn't match the gnu documentation and returns null. But it does. Your commit aa8ce5bb9b159abb2ffb0f43996340566fc2e9c6 almost fixed my problem, but it needs a tweak. Thanks, David Yoder --- src/daemon/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/daemon') diff --git a/src/daemon/main.c b/src/daemon/main.c index 576fc3e6..c73e9afc 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -425,7 +425,7 @@ int main(int argc, char *argv[]) { pa_set_env("LD_BIND_NOW", "1"); - if (!(canonical_rp = pa_realpath(PA_BINARY))) { + if ((canonical_rp = pa_realpath(PA_BINARY))) { if ((rp = pa_readlink("/proc/self/exe"))) { -- cgit