提交 bcd6c3a1 authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-3137 --resolve less of a memory leak more of a pool swelling, replaced a pool…

FS-3137 --resolve less of a memory leak more of a pool swelling, replaced a pool strdup that could recur with a strdup/free to avoid it
上级 a9099403
...@@ -1996,22 +1996,20 @@ static void conference_loop_fn_exec_app(conference_member_t *member, caller_cont ...@@ -1996,22 +1996,20 @@ static void conference_loop_fn_exec_app(conference_member_t *member, caller_cont
switch_event_fire(&event); switch_event_fire(&event);
} }
if ((mydata = switch_core_session_strdup(member->session, action->expanded_data))) { mydata = strdup(action->expanded_data);
if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) { switch_assert(mydata);
if (argc > 0) {
app = argv[0];
}
if (argc > 1) {
arg = argv[1];
}
} else { if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member->session), SWITCH_LOG_ERROR, "Empty execute app string [%s]\n", if (argc > 0) {
(char *) action->expanded_data); app = argv[0];
goto done; }
if (argc > 1) {
arg = argv[1];
} }
} else { } else {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member->session), SWITCH_LOG_ERROR, "Unable to allocate memory to duplicate execute_app data.\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(member->session), SWITCH_LOG_ERROR, "Empty execute app string [%s]\n",
(char *) action->expanded_data);
goto done; goto done;
} }
...@@ -2029,8 +2027,11 @@ static void conference_loop_fn_exec_app(conference_member_t *member, caller_cont ...@@ -2029,8 +2027,11 @@ static void conference_loop_fn_exec_app(conference_member_t *member, caller_cont
switch_core_session_execute_application(member->session, app, arg); switch_core_session_execute_application(member->session, app, arg);
switch_core_session_set_read_codec(member->session, &member->read_codec); switch_core_session_set_read_codec(member->session, &member->read_codec);
switch_channel_clear_app_flag(channel, CF_APP_TAGGED); switch_channel_clear_app_flag(channel, CF_APP_TAGGED);
done: done:
switch_safe_free(mydata);
return; return;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论