- Backport alsa-lib fixes from upstream: 0001-Fix-alsa-lib-to-regard-3D-control-Depth-as-Playback-.patch 0002-alsa-lib-add-LaCie-Firewire-Speakers-Griffin-FireWav.patch 0003-alsa-lib-ucm-allow-values-to-be-read-from-devices.patch 0004-UCM-comment-fixes-and-fix-myvalue-initialization-fix.patch 0005-UCM-Fix-empty-get_list-initialize-returned-pointer-t.patch 0006-Conf-Fix-channels-of-ICE1712-to-10-12.patch 0007-UCM-Fix-LGPL-licence-how-to-receive-part-referred-GP.patch 0008-configure-Fail-when-the-user-attempts-to-compile-sha.patch 0009-Mark-Heaphone-Center-LFE-control-of-emu10k1-conf-as-.patch 0010-Fix-typo-in-comment-in-surround71.conf.patch 0011-test-latency-print-error-message-when-2-periods-per-.patch 0012-EMU10K1.conf-Don-t-lock-hook-controls.patch 0013-HDA-Intel.conf-Fix-low-mic-volume-due-to-pulseaudio-.patch 0014-alsa-lib-fixed-coverity-reported-issues-under-FORWAR.patch 0015-Fix-compile-warnings.patch 0016-Fix-printf-for-size_t.patch 0018-UCM-fix-memory-leak-when-executing-cset-commands.patch 0019-Specficy-subdevice-0-for-front-surround-of-HDA-Intel.patch 0020-emu10k1.conf-Fix-no-sound-problem-when-using-SB-Live.patch 0021-ctlparse-Respect-softfloat-configure-option.patch 0022-UCM-Fix-typo-in-error-message.patch 0023-UCM-Fix-deadlock-following-failed-get-_verb.patch OBS-URL: https://build.opensuse.org/request/show/72599 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=80
36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
From 0a4b1ee746c1cfbfdfe586ce5f97b047fcad09f8 Mon Sep 17 00:00:00 2001
|
|
From: Stephen Warren <swarren@nvidia.com>
|
|
Date: Thu, 2 Jun 2011 16:44:39 -0600
|
|
Subject: [PATCH 23/23] UCM: Fix deadlock following failed get _verb
|
|
|
|
When querying the current verb without a verb set, snd_use_case_get bails
|
|
out early without unlocking uc_mgr->mutex. This causes subsequent API calls
|
|
to hang. Instead, s/return/goto __end/.
|
|
|
|
Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
---
|
|
src/ucm/main.c | 6 ++++--
|
|
1 files changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/ucm/main.c b/src/ucm/main.c
|
|
index f8ceeeb..fb4aa91 100644
|
|
--- a/src/ucm/main.c
|
|
+++ b/src/ucm/main.c
|
|
@@ -1132,8 +1132,10 @@ int snd_use_case_get(snd_use_case_mgr_t *uc_mgr,
|
|
}
|
|
err = 0;
|
|
} else if (strcmp(identifier, "_verb") == 0) {
|
|
- if (uc_mgr->active_verb == NULL)
|
|
- return -ENOENT;
|
|
+ if (uc_mgr->active_verb == NULL) {
|
|
+ err = -ENOENT;
|
|
+ goto __end;
|
|
+ }
|
|
*value = strdup(uc_mgr->active_verb->name);
|
|
if (*value == NULL) {
|
|
err = -ENOMEM;
|
|
--
|
|
1.7.5.3
|
|
|