From: Sean Bright Date: Thu, 11 Apr 2019 17:49:38 +0000 (-0400) Subject: pbx.c: Properly parse labels with leading digits X-Git-Tag: 17.0.0-rc1~110^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2cf4e8bff9392d1d25bbde5cad0be8fee6ec892b;p=thirdparty%2Fasterisk.git pbx.c: Properly parse labels with leading digits If the target of a Goto is a label that starts with a number, we erroneously treat the leading digits as a priority. ASTERISK-20182 #close Reported by: Janu Change-Id: Ia78408c0805a729103917247ecfc802f6fafc94b --- diff --git a/main/pbx.c b/main/pbx.c index ee5ed7ea9f..4a8345337c 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -8760,6 +8760,7 @@ static int pbx_parseable_goto(struct ast_channel *chan, const char *goto_string, char *stringp; int ipri; int mode = 0; + char rest[2] = ""; if (ast_strlen_zero(goto_string)) { ast_log(LOG_WARNING, "Goto requires an argument ([[context,]extension,]priority)\n"); @@ -8785,7 +8786,7 @@ static int pbx_parseable_goto(struct ast_channel *chan, const char *goto_string, mode = -1; pri++; } - if (sscanf(pri, "%30d", &ipri) != 1) { + if (sscanf(pri, "%30d%1s", &ipri, rest) != 1) { ipri = ast_findlabel_extension(chan, context ? context : ast_channel_context(chan), exten ? exten : ast_channel_exten(chan), pri, S_COR(ast_channel_caller(chan)->id.number.valid, ast_channel_caller(chan)->id.number.str, NULL));