Bug#628033: pulseaudio: core_util.c:pa_make_secure_dir() is over zealous on symlinks.

Tim Phipps tim at phipps-hutton.freeserve.co.uk
Thu May 26 14:42:20 UTC 2011


Package: pulseaudio
Version: 0.9.21-3+squeeze1
Severity: normal

I run pa in system mode with a read-only root and /var/lib/pulse a symlink to
a writeable directory with the correct permissions.
main.c calls pa_make_secure_dir() without checking if it exists and then fails
to start with this message:

main.c: Failed to create '/var/lib/pulse': Read-only file system

probably because pa_make_secure_dir() does this:
    r = mkdir(dir, m);
    if (r < 0 && errno != EEXIST)
        return -1;

I don't think it should be trying to create the directory if it already exists
and then special casing the errors it comes across. It should check if the
directory exists and then check if the permissions are correct. Only then
should it try to create a non-existing directory.

-- System Information:
Debian Release: 6.0.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686-bigmem (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages pulseaudio depends on:
ii  adduser                3.112+nmu2        add and remove users and groups
ii  consolekit             0.4.1-4           framework for defining and trackin
ii  libasound2             1.0.23-2.1        shared library for ALSA applicatio
ii  libc6                  2.11.2-10         Embedded GNU C Library: Shared lib
ii  libcap2                1:2.19-3          support for getting/setting POSIX.
ii  libdbus-1-3            1.2.24-4          simple interprocess messaging syst
ii  libgdbm3               1.8.3-9           GNU dbm database routines (runtime
ii  libice6                2:1.0.6-2         X11 Inter-Client Exchange library
ii  libltdl7               2.2.6b-2          A system independent dlopen wrappe
ii  libpulse0              0.9.21-3+squeeze1 PulseAudio client libraries
ii  libsamplerate0         0.1.7-3           Audio sample rate conversion libra
ii  libsm6                 2:1.1.1-1         X11 Session Management library
ii  libsndfile1            1.0.21-3          Library for reading/writing audio 
ii  libspeexdsp1           1.2~rc1-1         The Speex extended runtime library
ii  libudev0               164-3             libudev shared library
ii  libx11-6               2:1.3.3-4         X11 client-side library
ii  libxtst6               2:1.1.0-3         X11 Testing -- Record extension li
ii  lsb-base               3.2-23.2squeeze1  Linux Standard Base 3.2 init scrip
ii  udev                   164-3             /dev/ and hotplug management daemo

Versions of packages pulseaudio recommends:
ii  gstreamer0.10-pulseaud 0.10.24-1         GStreamer plugin for PulseAudio
ii  libasound2-plugins     1.0.23-1+b1       ALSA library additional plugins
ii  pulseaudio-esound-comp 0.9.21-3+squeeze1 PulseAudio ESD compatibility layer
ii  pulseaudio-module-x11  0.9.21-3+squeeze1 X11 module for PulseAudio sound se

Versions of packages pulseaudio suggests:
ii  paman                  0.9.4-1           PulseAudio Manager
ii  paprefs                0.9.9-2           PulseAudio Preferences
ii  pavucontrol            0.9.9-1           PulseAudio Volume Control
ii  pavumeter              0.9.3-1           PulseAudio Volume Meter
ii  pulseaudio-utils       0.9.21-3+squeeze1 Command line tools for the PulseAu

-- Configuration Files:
/etc/default/pulseaudio changed:
PULSEAUDIO_SYSTEM_START=1
DISALLOW_MODULE_LOADING=1


-- no debconf information







More information about the pkg-pulseaudio-devel mailing list