From b5607ea878a871108516922014944d7dd8f72266 Mon Sep 17 00:00:00 2001 From: brenosilva Date: Fri, 25 Mar 2011 21:41:55 +0000 Subject: [PATCH] Fix memory leak rsub --- apache2/re_operators.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apache2/re_operators.c b/apache2/re_operators.c index ed41f3ad..46c60c6f 100644 --- a/apache2/re_operators.c +++ b/apache2/re_operators.c @@ -609,8 +609,8 @@ static int msre_op_rsub_param_init(msre_rule *rule, char **error_msg) { return -1; } - e_pattern = remove_escape(rule, reg_pattern, strlen(reg_pattern)); e_replace = remove_escape(rule, replace, strlen(replace)); + rule->sub_str = apr_pstrmemdup(rule->ruleset->mp, e_replace, strlen(e_replace)); if (flags) { while (*flags) { @@ -624,8 +624,8 @@ static int msre_op_rsub_param_init(msre_rule *rule, char **error_msg) { } } + e_pattern = remove_escape(rule, reg_pattern, strlen(reg_pattern)); pattern = apr_pstrndup(rule->ruleset->mp, e_pattern, strlen(e_pattern)); - rule->sub_str = apr_pstrndup(rule->ruleset->mp, e_replace, strlen(e_replace)); if(strstr(pattern,"%{") == NULL) { regex = ap_pregcomp(rule->ruleset->mp, pattern, AP_REG_EXTENDED |