aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-15 20:18:58 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-15 20:18:58 +0000
commita1b09a6c5604e678ad53f630d3a498a84636235b (patch)
treef7f6c46005438222d62c5e1668d11fef00ff30e3 /res
parent5b4266dc4326d82f8473e3af5f9c108b8036b728 (diff)
Fix a silly deadlock in res_features that I found while debugging on one of
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: http://svn.digium.com/svn/asterisk/branches/1.4@69579 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_features.c b/res/res_features.c
index 9ffc2861d..81ac83950 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -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)) {