提交 1eb5ee1a authored 作者: Anthony Minessale's avatar Anthony Minessale 提交者: Mike Jerris

FS-10240: [freeswitch-core] Use the "Negative Lookahead" in xml dialplan cause memory leak #resolve

Conflicts:
	src/switch_channel.c
上级 595a5fc1
......@@ -4392,15 +4392,17 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_timestamps(switch_channel_t *
X = malloc(len);
for (i = 0; i < proceed; i++) {
if (pcre_get_substring(dtstr, ovector, proceed, i, &replace) > 0) {
switch_size_t plen = strlen(replace);
memset(X, 'X', plen);
*(X+plen) = '\0';
switch_safe_free(substituted);
substituted = switch_string_replace(substituted ? substituted : dtstr, replace, X);
pcre_free_substring(replace);
if (pcre_get_substring(dtstr, ovector, proceed, i, &replace) >= 0) {
if (replace) {
switch_size_t plen = strlen(replace);
memset(X, 'X', plen);
*(X+plen) = '\0';
switch_safe_free(substituted);
substituted = switch_string_replace(substituted ? substituted : dtstr, replace, X);
pcre_free_substring(replace);
}
}
}
......
......@@ -174,12 +174,15 @@ SWITCH_DECLARE(void) switch_perform_substitution(switch_regex_t *re, int match_c
num = -1;
}
if (pcre_get_substring(field_data, ovector, match_count, num, &replace) > 0) {
switch_size_t r;
for (r = 0; r < strlen(replace) && y < (len - 1); r++) {
substituted[y++] = replace[r];
if (pcre_get_substring(field_data, ovector, match_count, num, &replace) >= 0) {
if (replace) {
switch_size_t r;
for (r = 0; r < strlen(replace) && y < (len - 1); r++) {
substituted[y++] = replace[r];
}
pcre_free_substring(replace);
}
pcre_free_substring(replace);
}
} else {
substituted[y++] = data[x];
......@@ -200,9 +203,11 @@ SWITCH_DECLARE(void) switch_capture_regex(switch_regex_t *re, int match_count, c
int i;
for (i = 0; i < match_count; i++) {
if (pcre_get_substring(field_data, ovector, match_count, i, &replace) > 0) {
callback(var, replace, user_data);
pcre_free_substring(replace);
if (pcre_get_substring(field_data, ovector, match_count, i, &replace) >= 0) {
if (replace) {
callback(var, replace, user_data);
pcre_free_substring(replace);
}
}
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论