From b7a926c20a986336e9497b869e93a7a094c04156 Mon Sep 17 00:00:00 2001 From: brenosilva Date: Thu, 31 Mar 2011 19:18:39 +0000 Subject: [PATCH] Fix bug in pmf --- apache2/re_operators.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apache2/re_operators.c b/apache2/re_operators.c index 3d2dbc9d..caba42d9 100644 --- a/apache2/re_operators.c +++ b/apache2/re_operators.c @@ -1107,6 +1107,9 @@ static int msre_op_pm_param_init(msre_rule *rule, char **error_msg) { phrase = apr_pstrdup(rule->ruleset->mp, parse_pm_content(rule->op_param, op_len, rule, error_msg)); + if(phrase == NULL) + phrase = apr_pstrdup(rule->ruleset->mp, rule->op_param); + /* Loop through phrases */ /* ENH: Need to allow quoted phrases w/space */ for (;;) { @@ -1202,9 +1205,15 @@ static int msre_op_pmFromFile_param_init(msre_rule *rule, char **error_msg) { processed = apr_pstrdup(rule->ruleset->mp, parse_pm_content(buf, op_len, rule, error_msg)); /* Trim Whitespace */ - start = processed; + if(processed != NULL) + start = processed; + else + start = buf; while ((apr_isspace(*start) != 0) && (*start != '\0')) start++; - end = processed + strlen(processed); + if(processed != NULL) + end = processed + strlen(processed); + else + end = buf + strlen(buf); //end = buf + strlen(buf); if (end > start) end--; while ((end > start) && (apr_isspace(*end) != 0)) end--;