From: Naveen Albert Date: Wed, 29 Sep 2021 17:58:14 +0000 (+0000) Subject: app_read: Fix null pointer crash X-Git-Tag: 19.0.0-rc1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60bbfe4572321263360dd0b3e8214ee810adffaa;p=thirdparty%2Fasterisk.git app_read: Fix null pointer crash If the terminator character is not explicitly specified and an indications tone is used for reading a digit, there is no null pointer check so Asterisk crashes. This prevents null usage from occuring. ASTERISK-29673 #close Change-Id: Ie941833e123c3dbfb88371b5de5edbbe065514ac --- diff --git a/apps/app_read.c b/apps/app_read.c index dd48f05e13..977b20dc29 100644 --- a/apps/app_read.c +++ b/apps/app_read.c @@ -154,7 +154,7 @@ static int read_exec(struct ast_channel *chan, const char *data) struct ast_tone_zone_sound *ts = NULL; struct ast_flags flags = {0}; const char *status = "ERROR"; - char *terminator = NULL; /* use default terminator # by default */ + char *terminator = "#"; /* use default terminator # by default */ AST_DECLARE_APP_ARGS(arglist, AST_APP_ARG(variable); @@ -213,7 +213,7 @@ static int read_exec(struct ast_channel *chan, const char *data) } } if (ast_test_flag(&flags, OPT_TERMINATOR)) { - if (!ast_strlen_zero(arglist.filename)) { + if (!ast_strlen_zero(opt_args[OPT_ARG_TERMINATOR])) { terminator = opt_args[OPT_ARG_TERMINATOR]; } else { terminator = ""; /* no digit inherently will terminate input */