aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_stack.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/app_stack.c b/apps/app_stack.c
index 08a6c38c3..444aa4047 100644
--- a/apps/app_stack.c
+++ b/apps/app_stack.c
@@ -356,7 +356,12 @@ static int local_read(struct ast_channel *chan, const char *cmd, char *data, cha
oldlist = stack_store->data;
AST_LIST_LOCK(oldlist);
- frame = AST_LIST_FIRST(oldlist);
+ if (!(frame = AST_LIST_FIRST(oldlist))) {
+ /* Not within a Gosub routine */
+ AST_LIST_UNLOCK(oldlist);
+ return -1;
+ }
+
AST_LIST_TRAVERSE(&frame->varshead, variables, entries) {
if (!strcmp(data, ast_var_name(variables))) {
const char *tmp;