]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't allocate a stack unless we have pcre_jit_exec
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 5 Dec 2016 21:46:25 +0000 (16:46 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 5 Dec 2016 21:46:25 +0000 (16:46 -0500)
src/lib/regex.c

index 72c9752d5f3e23e334006dbcc4ef64b35db64ee5..37cef99aaf0d2d9f7fd251bfda608747c6ca2468 100644 (file)
  */
 #ifdef HAVE_PCRE
 
+#if (PCRE_MAJOR >= 8) && (PCRE_MINOR >= 32) && defined(PCRE_CONFIG_JIT)
+#  define HAVE_PCRE_JIT_EXEC 1
+#endif
+
+#ifdef HAVE_PCRE_JIT_EXEC
 fr_thread_local_setup(pcre_jit_stack *, fr_pcre_jit_stack)
+#endif
 
 /** Free regex_t structure
  *
@@ -225,6 +231,7 @@ int regex_exec(regex_t *preg, char const *subject, size_t len, regmatch_t pmatch
        int     ret;
        size_t  matches;
 
+#ifdef HAVE_PCRE_JIT_EXEC
        /*
         *      Allocate thread local JIT stack
         */
@@ -235,6 +242,7 @@ int regex_exec(regex_t *preg, char const *subject, size_t len, regmatch_t pmatch
                        return -1;
                }
        }
+#endif
 
        /*
         *      PCRE_NO_AUTO_CAPTURE is a compile time only flag,
@@ -251,7 +259,7 @@ int regex_exec(regex_t *preg, char const *subject, size_t len, regmatch_t pmatch
                matches = *nmatch;
        }
 
-#if (PCRE_MAJOR >= 8) && (PCRE_MINOR >= 32) && defined(PCRE_CONFIG_JIT)
+#ifdef HAVE_PCRE_JIT_EXEC
        if (preg->jitd) {
                ret = pcre_jit_exec(preg->compiled, preg->extra, subject, len, 0, 0,
                                    (int *)pmatch, matches * 3, fr_pcre_jit_stack);