Skip to content

Commit 84ad094

Browse files
author
Marc Stern
committed
Use PCRE_STUDY_EXTRA_NEEDED flag
1 parent e803cdd commit 84ad094

File tree

2 files changed

+10
-18
lines changed

2 files changed

+10
-18
lines changed

apache2/msc_pcre.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,7 @@ static apr_status_t msc_pcre_cleanup(msc_regex_t *regex) {
3131
}
3232
#else
3333
if (regex->pe != NULL) {
34-
#if defined(VERSION_NGINX)
3534
pcre_free(regex->pe);
36-
#else
37-
free(regex->pe);
38-
#endif
3935
regex->pe = NULL;
4036
}
4137
if (regex->re != NULL) {
@@ -152,19 +148,15 @@ void *msc_pregcomp_ex(apr_pool_t *pool, const char *pattern, int options,
152148

153149
#ifdef WITH_PCRE_STUDY
154150
#ifdef WITH_PCRE_JIT
155-
pe = pcre_study(regex->re, PCRE_STUDY_JIT_COMPILE, &errptr);
151+
pe = pcre_study(regex->re, PCRE_STUDY_EXTRA_NEEDED|PCRE_STUDY_JIT_COMPILE, &errptr);
156152
#else
157-
pe = pcre_study(regex->re, 0, &errptr);
153+
pe = pcre_study(regex->re, PCRE_STUDY_EXTRA_NEEDED, &errptr);
158154
#endif
159155
#endif
160156

161157
/* Setup the pcre_extra record if pcre_study did not already do it */
162158
if (pe == NULL) {
163-
#if defined(VERSION_NGINX)
164-
pe = pcre_malloc(sizeof(pcre_extra));
165-
#else
166-
pe = malloc(sizeof(pcre_extra));
167-
#endif
159+
pe = (pcre_extra*)pcre_malloc(sizeof(pcre_extra));
168160
if (pe == NULL) {
169161
return NULL;
170162
}

apache2/re_operators.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ static int msre_op_validateHash_param_init(msre_rule *rule, char **error_msg) {
701701
const char *pattern = rule->op_param;
702702
#ifdef WITH_PCRE_STUDY
703703
#ifdef WITH_PCRE_JIT
704-
int rc, jit;
704+
int rc, jit = 0;
705705
#endif
706706
#endif
707707

@@ -784,7 +784,7 @@ static int msre_op_validateHash_execute(modsec_rec *msr, msre_rule *rule, msre_v
784784
int rc;
785785
#ifdef WITH_PCRE_STUDY
786786
#ifdef WITH_PCRE_JIT
787-
int jit;
787+
int jit = 0;
788788
#endif
789789
#endif
790790

@@ -976,7 +976,7 @@ static int msre_op_rx_param_init(msre_rule *rule, char **error_msg) {
976976
const char *pattern = rule->op_param;
977977
#ifdef WITH_PCRE_STUDY
978978
#ifdef WITH_PCRE_JIT
979-
int rc, jit;
979+
int rc, jit = 0;
980980
#endif
981981
#endif
982982

@@ -1059,7 +1059,7 @@ static int msre_op_rx_execute(modsec_rec *msr, msre_rule *rule, msre_var *var, c
10591059
msc_parm *mparm = NULL;
10601060
#ifdef WITH_PCRE_STUDY
10611061
#ifdef WITH_PCRE_JIT
1062-
int jit;
1062+
int jit = 0;
10631063
#endif
10641064
#endif
10651065

@@ -2942,7 +2942,7 @@ static int msre_op_verifyCC_execute(modsec_rec *msr, msre_rule *rule, msre_var *
29422942
msc_parm *mparm = NULL;
29432943
#ifdef WITH_PCRE_STUDY
29442944
#ifdef WITH_PCRE_JIT
2945-
int jit;
2945+
int jit = 0;
29462946
#endif
29472947
#endif
29482948

@@ -3275,7 +3275,7 @@ static int msre_op_verifyCPF_execute(modsec_rec *msr, msre_rule *rule, msre_var
32753275
msc_parm *mparm = NULL;
32763276
#ifdef WITH_PCRE_STUDY
32773277
#ifdef WITH_PCRE_JIT
3278-
int jit;
3278+
int jit = 0;
32793279
#endif
32803280
#endif
32813281

@@ -3595,7 +3595,7 @@ static int msre_op_verifySSN_execute(modsec_rec *msr, msre_rule *rule, msre_var
35953595
msc_parm *mparm = NULL;
35963596
#ifdef WITH_PCRE_STUDY
35973597
#ifdef WITH_PCRE_JIT
3598-
int jit;
3598+
int jit = 0;
35993599
#endif
36003600
#endif
36013601

0 commit comments

Comments
 (0)