diff --git a/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c index 652d400ddf..ccc8c938f8 100644 --- a/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c +++ b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c @@ -147,7 +147,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t * } if (field && strchr(expression, '(')) { - len = (uint32_t) (strlen(data) + strlen(field_data) + 10); + len = (uint32_t) (strlen(data) + strlen(field_data) + 10) * proceed; if (!(substituted = malloc(len))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n"); proceed = 0;