提交 7ee53a6e authored 作者: Andrey Volk's avatar Andrey Volk

FS-12040: [mod_sofia] Fix potential leak if realloc fails.

上级 d0c6b30c
......@@ -821,8 +821,13 @@ void sofia_handle_sip_i_notify(switch_core_session_t *session, int status,
while ((call_info = call_info->ci_next) != NULL) {
char *tmp = sip_header_as_string(nua_handle_home(nh), (void *) call_info);
size_t tmp_len = strlen(tmp);
hold = realloc(hold, cur_len + tmp_len + 2);
switch_assert(hold);
char *tmp_hold = realloc(hold, cur_len + tmp_len + 2);
if (!tmp_hold) {
/* Avoid leak if realloc failed */
free(hold);
}
switch_assert(tmp_hold);
hold = tmp_hold;
strncpy(hold + cur_len, ",", 2);
strncpy(hold + cur_len + 1, tmp, tmp_len +1);
su_free(nua_handle_home(nh), tmp);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论