]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix a silly deadlock in res_features that I found while debugging on one of
authorRussell Bryant <russell@russellbryant.com>
Fri, 15 Jun 2007 20:18:58 +0000 (20:18 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 15 Jun 2007 20:18:58 +0000 (20:18 +0000)
blitzrage's test machines.  It was one of the situations where he was seeing
hung channels, and may be the cause of some of the reports from other people.
(related to issue #9235)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69579 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_features.c

index 9ffc2861d97fbf3443cbfb525d3037c2d4d8ce46..81ac839504e04deeb2928bfdd28f41a786385b60 100644 (file)
@@ -1083,8 +1083,10 @@ static int ast_feature_interpret(struct ast_channel *chan, struct ast_channel *p
 
        while ((tok = strsep(&tmp, "#"))) {
                AST_LIST_LOCK(&feature_list);   
-               if (!(feature = find_dynamic_feature(tok)))
+               if (!(feature = find_dynamic_feature(tok))) {
+                       AST_LIST_UNLOCK(&feature_list);
                        continue;
+               }
                        
                /* Feature is up for consideration */
                if (!strcmp(feature->exten, code)) {