提交 25bbb42e authored 作者: Mike Jerris's avatar Mike Jerris

FS-10001: [core] Fix Buffer overflow collecting digits

上级 d5e558fa
......@@ -935,6 +935,7 @@ SWITCH_STANDARD_APP(eavesdrop_function)
if ((file = switch_channel_get_variable(channel, "eavesdrop_indicate_failed"))) {
switch_ivr_play_file(session, NULL, file, NULL);
}
buf[0] = '\0';
switch_ivr_collect_digits_count(session, buf, buflen, 1, "*", &terminator, 5000, 0, 0);
continue;
}
......@@ -954,6 +955,7 @@ SWITCH_STANDARD_APP(eavesdrop_function)
if ((file = switch_channel_get_variable(channel, "eavesdrop_indicate_failed"))) {
switch_ivr_play_file(session, NULL, file, NULL);
}
buf[0] = '\0';
switch_ivr_collect_digits_count(session, buf, buflen, 1, "*", &terminator, 5000, 0, 0);
}
}
......@@ -962,6 +964,7 @@ SWITCH_STANDARD_APP(eavesdrop_function)
if ((file = switch_channel_get_variable(channel, "eavesdrop_indicate_idle"))) {
switch_ivr_play_file(session, NULL, file, NULL);
}
buf[0] = '\0';
switch_ivr_collect_digits_count(session, buf, buflen, 1, "*", &terminator, 2000, 0, 0);
}
}
......
......@@ -1333,6 +1333,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_count(switch_core_sess
int sval = 0;
const char *var;
if (x >= buflen || x >= maxdigits) {
return SWITCH_STATUS_FALSE;
}
if ((var = switch_channel_get_variable(channel, SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE)) && (sval = atoi(var))) {
switch_core_session_get_read_impl(session, &imp);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论