diff --git a/0021-alsamixer-Fix-X-win-related-crash-for-PulseAudio-plu.patch b/0021-alsamixer-Fix-X-win-related-crash-for-PulseAudio-plu.patch new file mode 100644 index 0000000..c5c46fe --- /dev/null +++ b/0021-alsamixer-Fix-X-win-related-crash-for-PulseAudio-plu.patch @@ -0,0 +1,88 @@ +From 4c09aaa5c13c2260fea57a89c47f88252da8a692 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Nov 2011 17:27:47 +0100 +Subject: [PATCH] alsamixer: Fix X-win related crash for PulseAudio plugin + (bad linking) + +A lot of reports that alsamixer crashes in X terminal when the PulseAudio +CTL plugin is activated were entered to the tracking systems. + +I figured that there is a linking clash for the shutdown() function. +The shutdown() function in glibc is socket related, but the alsamixer code +redefines this function and appearently that under some linking +circumstances - which PA client invokes during the runtime dynamic linking +- the wrong function is called. + +This patch, for safety, renames the shutdown() function from alsamixer +to app_shutdown(), but it might make sense to figure the real linking +culprit to avoid future surprises. + +Signed-off-by: Jaroslav Kysela +--- + alsamixer/cli.c | 2 +- + alsamixer/die.c | 4 ++-- + alsamixer/mainloop.c | 2 +- + alsamixer/mainloop.h | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/alsamixer/cli.c b/alsamixer/cli.c +index 3898196..bb4f030 100644 +--- a/alsamixer/cli.c ++++ b/alsamixer/cli.c +@@ -130,6 +130,6 @@ int main(int argc, char *argv[]) + + mainloop(); + +- shutdown(); ++ app_shutdown(); + return 0; + } +diff --git a/alsamixer/die.c b/alsamixer/die.c +index dcd8536..899a501 100644 +--- a/alsamixer/die.c ++++ b/alsamixer/die.c +@@ -26,14 +26,14 @@ + + void fatal_error(const char *msg) + { +- shutdown(); ++ app_shutdown(); + fprintf(stderr, "%s\n", msg); + exit(EXIT_FAILURE); + } + + void fatal_alsa_error(const char *msg, int err) + { +- shutdown(); ++ app_shutdown(); + fprintf(stderr, _("%s: %s\n"), msg, snd_strerror(err)); + exit(EXIT_FAILURE); + } +diff --git a/alsamixer/mainloop.c b/alsamixer/mainloop.c +index eddaf3b..dbfef9b 100644 +--- a/alsamixer/mainloop.c ++++ b/alsamixer/mainloop.c +@@ -52,7 +52,7 @@ void initialize_curses(bool use_color) + snd_lib_error_set_handler(black_hole_error_handler); + } + +-void shutdown(void) ++void app_shutdown(void) + { + if (curses_initialized) { + clear(); +diff --git a/alsamixer/mainloop.h b/alsamixer/mainloop.h +index 0cfc989..22317be 100644 +--- a/alsamixer/mainloop.h ++++ b/alsamixer/mainloop.h +@@ -5,6 +5,6 @@ + + void initialize_curses(bool use_color); + void mainloop(void); +-void shutdown(void); ++void app_shutdown(void); + + #endif +-- +1.7.7 + diff --git a/alsa-utils.changes b/alsa-utils.changes index 2ef25d9..e2d2200 100644 --- a/alsa-utils.changes +++ b/alsa-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Nov 2 17:38:32 CET 2011 - tiwai@suse.de + +- Backport upstream fix: + - fix a crash of alsamixer with pulse plugin + ------------------------------------------------------------------- Tue Sep 20 09:47:45 CEST 2011 - tiwai@suse.de diff --git a/alsa-utils.spec b/alsa-utils.spec index 99f0975..cce853f 100644 --- a/alsa-utils.spec +++ b/alsa-utils.spec @@ -55,6 +55,7 @@ Patch17: 0017-speaker-test.1-Clarify-man-page-by-giving-examples.patch Patch18: 0018-alsa-utils-amixer-Fix-SND_CTL_TLVT_DB_RANGE-handling.patch Patch19: 0019-aplay-increase-channel-limit-to-256.patch Patch20: 0020-fix-use-of-SED.patch +Patch21: 0021-alsamixer-Fix-X-win-related-crash-for-PulseAudio-plu.patch Patch99: alsa-utils-gettext-version-removal.diff Url: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -88,6 +89,7 @@ sed -i -e's/EXTRA_DIST= config.rpath /EXTRA_DIST=/' Makefile.am %patch18 -p1 %patch19 -p1 %patch20 -p1 +%patch21 -p1 %if %suse_version < 1020 %patch99 -p1 %endif