diff -Naur pulseaudio-0.9.12.old/src/pulsecore/core-util.c pulseaudio-0.9.12/src/pulsecore/core-util.c --- pulseaudio-0.9.12.old/src/pulsecore/core-util.c 2008-09-09 00:33:30.000000000 +0100 +++ pulseaudio-0.9.12/src/pulsecore/core-util.c 2008-10-04 19:55:56.000000000 +0100 @@ -1370,6 +1370,7 @@ char *pa_get_runtime_dir(void) { char *d, *k = NULL, *p = NULL, *t = NULL, *mid; struct stat st; + mode_t m; /* The runtime directory shall contain dynamic data that needs NOT * to be kept accross reboots and is usuallly private to the user, @@ -1378,10 +1379,9 @@ * this directory, we link it to a random subdir in /tmp, if it * was not explicitly configured. */ - if ((d = getenv("PULSE_RUNTIME_PATH"))) { - mode_t m; + m = pa_in_system_mode() ? 0755U : 0700U; - m = pa_in_system_mode() ? 0755U : 0700U; + if ((d = getenv("PULSE_RUNTIME_PATH"))) { if (pa_make_secure_dir(d, m, (uid_t) -1, (gid_t) -1) < 0) { pa_log_error("Failed to create secure directory: %s", pa_cstrerror(errno)); @@ -1394,6 +1394,11 @@ if (!(d = get_pulse_home())) goto fail; + if (pa_make_secure_dir(d, m, (uid_t) -1, (gid_t) -1) < 0) { + pa_log_error("Failed to create secure directory: %s", pa_cstrerror(errno)); + goto fail; + } + if (!(mid = pa_machine_id())) { pa_xfree(d); goto fail;