diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-08-09 07:11:22 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-08-09 07:11:22 +0000 |
commit | e05992889b1c3c019206de5d6ee7d840c246c54e (patch) | |
tree | 4f1c18318ed226d0b21ae8a653c7b7f03c170cfc /apps/app_stack.c | |
parent | 4f804682453f45496e769cf1701e113f144f716e (diff) |
Check for NULL frame, before dereferencing pointer.
(closes issue #15617)
Reported by: rain
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211232 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_stack.c')
-rw-r--r-- | apps/app_stack.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/app_stack.c b/apps/app_stack.c index 1a2523122..d46f0481c 100644 --- a/apps/app_stack.c +++ b/apps/app_stack.c @@ -474,7 +474,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; |