[alsa-devel] [PATCH 2/2] UCM: Fix deadlock following failed get _verb

Stephen Warren swarren at nvidia.com
Fri Jun 3 00:44:39 CEST 2011


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 at nvidia.com>
---
 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.0.4



More information about the Alsa-devel mailing list