]> git.alsa-project.org Git - alsa-lib.git/commitdiff
UCM: Fix deadlock following failed get _verb
authorStephen Warren <swarren@nvidia.com>
Thu, 2 Jun 2011 22:44:39 +0000 (16:44 -0600)
committerJaroslav Kysela <perex@perex.cz>
Fri, 3 Jun 2011 09:45:17 +0000 (11:45 +0200)
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

index f8ceeebde69ca0745cf798152449808390856736..fb4aa910a9f408621cae4a7c78388a86921f6d31 100644 (file)
@@ -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;