From: BJ Weschke Date: Fri, 16 Jun 2006 12:55:18 +0000 (+0000) Subject: Quit early and print a LOG_WARNING if we are trying to check devicestate on a Local... X-Git-Tag: 1.4.0-beta1~875 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35a2f14d96a5f83e7f16e68a8a7a65fc92ed9d78;p=thirdparty%2Fasterisk.git Quit early and print a LOG_WARNING if we are trying to check devicestate on a Local channel that's been improperly defined. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34463 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_local.c b/channels/chan_local.c index a865aa6b42..29f5d8afe1 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -126,16 +126,23 @@ static int local_devicestate(void *data) int res; exten = ast_strdupa(data); - if ((context = strchr(exten, '@'))) { - *context = '\0'; - context = context + 1; + context = strchr(exten, '@'); + + if (!context) { + ast_log(LOG_WARNING, "Someone used Local/%s somewhere without a @context. This is bad.\n", exten); + return AST_DEVICE_INVALID; } + + *context = '\0'; + context = context + 1; + if (option_debug > 2) ast_log(LOG_DEBUG, "Checking if extension %s@%s exists (devicestate)\n", exten, context); res = ast_exists_extension(NULL, context, exten, 1, NULL); - if (!res) + if (!res) { + return AST_DEVICE_INVALID; - else + } else return AST_DEVICE_UNKNOWN; }