commit 89e6c7b: fix NULL pointer use when JIT compiling a regular expression.

Dirk Jagdmann doj at cubic.org
Thu Dec 26 16:35:06 UTC 2019


Author: Dirk Jagdmann
Date: 2019-12-25 20:44:11 -0800
URL: https://github.com/rspamd/rspamd/commit/89e6c7b841aa2c56388b8026904f7bc713a2ba9c (refs/pull/3198/head)

fix NULL pointer use when JIT compiling a regular expression.

---
 src/libutil/regexp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libutil/regexp.c b/src/libutil/regexp.c
index 9bef43501..f36bd04f9 100644
--- a/src/libutil/regexp.c
+++ b/src/libutil/regexp.c
@@ -199,7 +199,7 @@ rspamd_regexp_post_process (rspamd_regexp_t *r)
 		pcre2_jit_stack_assign (r->mcontext, NULL, global_re_cache->jstack);
 	}
 
-	if (r->re != r->raw_re && !(r->flags & RSPAMD_REGEXP_FLAG_DISABLE_JIT)) {
+	if (r->raw_re && r->re != r->raw_re && !(r->flags & RSPAMD_REGEXP_FLAG_DISABLE_JIT)) {
 		if (pcre2_jit_compile (r->raw_re, jit_flags) < 0) {
 			msg_debug ("jit compilation of %s is not supported", r->pattern);
 			r->flags |= RSPAMD_REGEXP_FLAG_DISABLE_JIT;
@@ -209,6 +209,7 @@ rspamd_regexp_post_process (rspamd_regexp_t *r)
 			msg_debug ("jit compilation of raw %s is not supported", r->pattern);
 		}
 		else if (!(r->flags & RSPAMD_REGEXP_FLAG_DISABLE_JIT)) {
+			g_assert (r->raw_mcontext != NULL);
 			pcre2_jit_stack_assign (r->raw_mcontext, NULL, global_re_cache->jstack);
 		}
 	}


More information about the Commits mailing list