Merge pull request #2946 from marcstern/v2/mst/issue610

Fix for https://github.com/SpiderLabs/ModSecurity/issues/610
This commit is contained in:
Marc Stern
2024-02-01 11:10:27 +01:00
committed by GitHub

View File

@@ -31,11 +31,7 @@ static apr_status_t msc_pcre_cleanup(msc_regex_t *regex) {
} }
#else #else
if (regex->pe != NULL) { if (regex->pe != NULL) {
#if defined(VERSION_NGINX)
pcre_free(regex->pe); pcre_free(regex->pe);
#else
free(regex->pe);
#endif
regex->pe = NULL; regex->pe = NULL;
} }
if (regex->re != NULL) { if (regex->re != NULL) {
@@ -152,19 +148,15 @@ void *msc_pregcomp_ex(apr_pool_t *pool, const char *pattern, int options,
#ifdef WITH_PCRE_STUDY #ifdef WITH_PCRE_STUDY
#ifdef WITH_PCRE_JIT #ifdef WITH_PCRE_JIT
pe = pcre_study(regex->re, PCRE_STUDY_JIT_COMPILE, &errptr); pe = pcre_study(regex->re, PCRE_STUDY_EXTRA_NEEDED|PCRE_STUDY_JIT_COMPILE, &errptr);
#else #else
pe = pcre_study(regex->re, 0, &errptr); pe = pcre_study(regex->re, PCRE_STUDY_EXTRA_NEEDED, &errptr);
#endif #endif
#endif #endif
/* Setup the pcre_extra record if pcre_study did not already do it */ /* Setup the pcre_extra record if pcre_study did not already do it */
if (pe == NULL) { if (pe == NULL) {
#if defined(VERSION_NGINX) pe = (pcre_extra*)pcre_malloc(sizeof(pcre_extra));
pe = pcre_malloc(sizeof(pcre_extra));
#else
pe = malloc(sizeof(pcre_extra));
#endif
if (pe == NULL) { if (pe == NULL) {
return NULL; return NULL;
} }