rpms/pulseaudio/EL-5 pulseaudio-0.9.10-libtool.patch, NONE, 1.1 pulseaudio.spec, 1.5, 1.6
Lubomir Rintel
lkundrak at fedoraproject.org
Mon Aug 24 13:04:55 UTC 2009
Author: lkundrak
Update of /cvs/pkgs/rpms/pulseaudio/EL-5
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20472
Modified Files:
pulseaudio.spec
Added Files:
pulseaudio-0.9.10-libtool.patch
Log Message:
* Mon Aug 24 2009 Lubomir Rintel <lkundrak at v3.sk> 0.9.10-1.3
- Work around broken libtool (#455842, Michal Schmidt)
pulseaudio-0.9.10-libtool.patch:
ltdl-bind-now.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE pulseaudio-0.9.10-libtool.patch ---
Workaround libtool 1.5.22 bugs
Lennart in http://pulseaudio.org/wiki/KnownIncompatibilities said:
libtool's libltdl 1.5.22 is buggy and causes PA to abort immediately after
startup with a mutex locking error. Upgrade to 1.5.24 at least.
The mutex locking error is caused by lt_dlmutex_register() calling the new
unlock function. A workaround could be to ignore the call to the unlock
function made by lt_dlmutex_register().
But there's yet another bug. The seterror function is not set by
lt_dlmutex_register(). Therefore the get/set symmetry is broken.
lt_dlmutex_register() won't allow us to not set a get function and since
neither lt_dlmutex_seterror_func nor lt_dllast_error are visible outside of
ltdl.c, we cannot even fix it afterwards. We could try to avoid ltdl functions
which depend on LT_DLMUTEX_{SET,GET}ERROR. lt_dlopenext() is one of those. It
can be worked around by using lt_dlopen() instead and using the filename with
the ".so" extension. But there may be other things affected by broken
LT_DLMUTEX_SET_ERROR. At the very least, any error messages from ltdl would
show up as '(null)'.
In the end the easiest fix is to skip calling lt_dlmutex_register() completely.
It was meant to provide thread-safety for ltdl, but it could not work in all
situations, later libtool releases deprecated this function and libtool 2.2
does not have it anymore. PA stopped using it in v0.9.15.
I don't know whether PA loads modules from a single thread only or not. If not,
we could add locking around ltdl calls in PA.
--
Michal Schmidt <mschmidt at redhat.com>
Index: pulseaudio-0.9.10/src/daemon/ltdl-bind-now.c
===================================================================
--- pulseaudio-0.9.10.orig/src/daemon/ltdl-bind-now.c
+++ pulseaudio-0.9.10/src/daemon/ltdl-bind-now.c
@@ -154,7 +154,7 @@ void pa_ltdl_init(void) {
pa_assert_se(lt_dlinit() == 0);
pa_assert_se(libtool_mutex = pa_mutex_new(TRUE, FALSE));
#ifdef HAVE_LT_DLMUTEX_REGISTER
- pa_assert_se(lt_dlmutex_register(libtool_lock, libtool_unlock, libtool_set_error, libtool_get_error) == 0);
+// pa_assert_se(lt_dlmutex_register(libtool_lock, libtool_unlock, libtool_set_error, libtool_get_error) == 0);
#endif
#ifdef PA_BIND_NOW
Index: pulseaudio.spec
===================================================================
RCS file: /cvs/pkgs/rpms/pulseaudio/EL-5/pulseaudio.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- pulseaudio.spec 16 Jul 2009 14:57:42 -0000 1.5
+++ pulseaudio.spec 24 Aug 2009 13:04:55 -0000 1.6
@@ -3,11 +3,12 @@
Name: pulseaudio
Summary: Improved Linux sound server
Version: 0.9.10
-Release: 1%{?dist}.2
+Release: 1%{?dist}.3
License: GPLv2+
Group: System Environment/Daemons
Source0: http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-%{version}.tar.gz
Patch0: pulseaudio-0.9.10-CVE-2009-1894.patch
+Patch1: pulseaudio-0.9.10-libtool.patch
URL: http://pulseaudio.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcp_wrappers
@@ -151,6 +152,7 @@ This package contains command line utili
%prep
%setup -q -T -b0
%patch0 -p1 -b .CVE-2009-1894
+%patch1 -p1 -b .libtool
%build
%configure --disable-ltdl-install --disable-static --disable-rpath --with-system-user=pulse --with-system-group=pulse --with-realtime-group=pulse-rt --with-access-group=pulse-access
@@ -370,6 +372,9 @@ fi
%{_mandir}/man1/pax11publish.1.gz
%changelog
+* Mon Aug 24 2009 Lubomir Rintel <lkundrak at v3.sk> 0.9.10-1.3
+- Work around broken libtool (#455842, Michal Schmidt)
+
* Thu Jul 16 2009 Lubomir Rintel <lkundrak at v3.sk> 0.9.10-1.2
- Fix CVE-2009-1894
More information about the scm-commits
mailing list