FS-4450 this is pre-emptive, This is the only way I can see an endless loop here

This commit is contained in:
Anthony Minessale 2012-07-20 19:15:04 -05:00
parent b5f7443524
commit 6ec4514c68

View File

@ -2380,8 +2380,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
while (*chan_type == '[') { while (*chan_type == '[') {
char *parsed = NULL; char *parsed = NULL;
char *bend = switch_find_end_paren(chan_type, '[', ']');
for (p = chan_type; p && *p && *p != ']'; p++) { for (p = chan_type + 1; p && p < bend && *p; p++) {
if (*p == QUOTED_ESC_COMMA) { if (*p == QUOTED_ESC_COMMA) {
*p = ','; *p = ',';
} }
@ -2393,8 +2394,13 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
switch_goto_status(SWITCH_STATUS_GENERR, done); switch_goto_status(SWITCH_STATUS_GENERR, done);
} }
if (chan_type == parsed) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Parse Error!\n");
switch_goto_status(SWITCH_STATUS_GENERR, done);
} else {
chan_type = parsed; chan_type = parsed;
} }
}
/* strip leading spaces (again) */ /* strip leading spaces (again) */