From 3e94a9925c65f790361523dc54cd9cd059bf137a Mon Sep 17 00:00:00 2001 From: Corey Farrell Date: Sat, 1 Feb 2014 00:23:42 +0000 Subject: [PATCH] app_stack: protect against missing parameters to STACK_PEEK and LOCAL_PEEK STACK_PEEK requires 2 parameters and LOCAL_PEEK requires 1 parameter. This protects against situations where those parameters are blank or missing by logging an error and returning. (closes issue ASTERISK-23220) Reported by: James Sharp ........ Merged revisions 407100 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@407103 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_stack.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/app_stack.c b/apps/app_stack.c index 2e982b956c..20b03087f3 100644 --- a/apps/app_stack.c +++ b/apps/app_stack.c @@ -763,6 +763,12 @@ static int peek_read(struct ast_channel *chan, const char *cmd, char *data, char } AST_STANDARD_RAW_ARGS(args, data); + + if (ast_strlen_zero(args.n) || ast_strlen_zero(args.name)) { + ast_log(LOG_ERROR, "LOCAL_PEEK requires parameters n and varname\n"); + return -1; + } + n = atoi(args.n); *buf = '\0'; @@ -802,6 +808,11 @@ static int stackpeek_read(struct ast_channel *chan, const char *cmd, char *data, data = ast_strdupa(data); AST_STANDARD_APP_ARGS(args, data); + if (ast_strlen_zero(args.n) || ast_strlen_zero(args.which)) { + ast_log(LOG_ERROR, "STACK_PEEK requires parameters n and which\n"); + return -1; + } + n = atoi(args.n); if (n <= 0) { ast_log(LOG_ERROR, "STACK_PEEK must be called with a positive peek value\n"); -- 2.47.2