make sure to LOCAL_USER_REMOVE in all cases where the application can exit (issue...
authorRussell Bryant <russell@russellbryant.com>
Wed, 28 Sep 2005 19:42:36 +0000 (19:42 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 28 Sep 2005 19:42:36 +0000 (19:42 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6678 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_chanisavail.c

index 791851f..4e5e524 100755 (executable)
@@ -101,6 +101,7 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
                        number = strchr(tech, '/');
                        if (!number) {
                                ast_log(LOG_WARNING, "ChanIsAvail argument takes format ([technology]/[device])\n");
+                               LOCAL_USER_REMOVE(u);
                                return -1;
                        }
                        *number = '\0';
@@ -135,8 +136,10 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
        if (res < 1) {
                pbx_builtin_setvar_helper(chan, "AVAILCHAN", "");
                pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", "");
-               if (ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101))
+               if (ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101)) {
+                       LOCAL_USER_REMOVE(u);
                        return -1;
+               }
        }
 
        LOCAL_USER_REMOVE(u);