From 0a4b1ee746c1cfbfdfe586ce5f97b047fcad09f8 Mon Sep 17 00:00:00 2001 From: Stephen Warren 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 Signed-off-by: Jaroslav Kysela --- 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