aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-12-07 00:29:26 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-12-07 00:29:26 +0000
commit0f8c96526432f74231928ca7e26bb2cb36cce031 (patch)
treeae2b9fa8b30532a542f3e3b89dad90f0d10f9818 /apps
parent9399491d73d8e777f082d42ccf42954b74605047 (diff)
Merged revisions 297713 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r297713 | tilghman | 2010-12-06 18:21:50 -0600 (Mon, 06 Dec 2010) | 15 lines Merged revisions 297689 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r297689 | tilghman | 2010-12-06 18:07:37 -0600 (Mon, 06 Dec 2010) | 8 lines Don't create a Local channel if the target extension does not exist. (closes issue #18126) Reported by: junky Patches: followme.diff uploaded by junky (license 177) (partially restructured by me to avoid a possible memory leak) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@297733 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_followme.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/apps/app_followme.c b/apps/app_followme.c
index b17d5252b..a71a683d3 100644
--- a/apps/app_followme.c
+++ b/apps/app_followme.c
@@ -811,7 +811,6 @@ static void findmeexec(struct fm_args *tpargs)
break;
while (nm) {
-
ast_debug(2, "Number %s timeout %ld\n", nm->number,nm->timeout);
number = ast_strdupa(nm->number);
@@ -823,6 +822,14 @@ static void findmeexec(struct fm_args *tpargs)
rest++;
}
+ /* We check if that context exists, before creating the ast_channel struct needed */
+ if (!ast_exists_extension(caller, tpargs->context, number, 1, S_COR(caller->caller.id.number.valid, caller->caller.id.number.str, NULL))) {
+ /* XXX Should probably restructure to simply skip this item, instead of returning. XXX */
+ ast_log(LOG_ERROR, "Extension '%s@%s' doesn't exist\n", number, tpargs->context);
+ free(findme_user_list);
+ return;
+ }
+
if (!strcmp(tpargs->context, ""))
snprintf(dialarg, sizeof(dialarg), "%s", number);
else
@@ -830,7 +837,6 @@ static void findmeexec(struct fm_args *tpargs)
tmpuser = ast_calloc(1, sizeof(*tmpuser));
if (!tmpuser) {
- ast_log(LOG_WARNING, "Out of memory!\n");
ast_free(findme_user_list);
return;
}