diff --git a/CHANGES b/CHANGES index ad6ba324..e079ce7b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,7 +1,10 @@ -21 Mar 2007 - trunk +?? ??? 2007 - trunk ------------------- +* Add the PCRE_DOLLAR_ENDONLY option when compiling regular expression + for the @rx operator and variables. + * Really set PCRE_DOTALL option when compiling the regular expression for the @rx operator as the docs state. diff --git a/apache2/re_operators.c b/apache2/re_operators.c index 7bbf8b61..cb3ebf53 100644 --- a/apache2/re_operators.c +++ b/apache2/re_operators.c @@ -64,7 +64,7 @@ static int msre_op_rx_param_init(msre_rule *rule, char **error_msg) { *error_msg = NULL; /* Compile pattern */ - regex = msc_pregcomp(rule->ruleset->mp, pattern, PCRE_DOTALL, &errptr, &erroffset); + regex = msc_pregcomp(rule->ruleset->mp, pattern, PCRE_DOTALL | PCRE_DOLLAR_ENDONLY, &errptr, &erroffset); if (regex == NULL) { *error_msg = apr_psprintf(rule->ruleset->mp, "Error compiling pattern (pos %i): %s", erroffset, errptr); diff --git a/apache2/re_variables.c b/apache2/re_variables.c index 9a9b85ad..360f5b57 100644 --- a/apache2/re_variables.c +++ b/apache2/re_variables.c @@ -69,7 +69,7 @@ static char *var_generic_list_validate(msre_ruleset *ruleset, msre_var *var) { pattern = apr_pstrmemdup(ruleset->mp, var->param + 1, strlen(var->param + 1) - 1); if (pattern == NULL) return FATAL_ERROR; - regex = msc_pregcomp(ruleset->mp, pattern, PCRE_DOTALL | PCRE_CASELESS, &errptr, &erroffset); + regex = msc_pregcomp(ruleset->mp, pattern, PCRE_DOTALL | PCRE_CASELESS | PCRE_DOLLAR_ENDONLY, &errptr, &erroffset); if (regex == NULL) { return apr_psprintf(ruleset->mp, "Error compiling pattern (pos %i): %s", erroffset, errptr);