]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_read: Fix null pointer crash
authorNaveen Albert <asterisk@phreaknet.org>
Wed, 29 Sep 2021 17:58:14 +0000 (17:58 +0000)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Thu, 30 Sep 2021 16:07:32 +0000 (11:07 -0500)
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

apps/app_read.c

index dd48f05e1399538699743364e3495f156bbe1120..977b20dc2956402900c845b41e06a711b75c10d9 100644 (file)
@@ -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 */