From fd5e04a35122c62584da5a9558f3b744a2d09692 Mon Sep 17 00:00:00 2001 From: zherczeg Date: Tue, 27 Oct 2020 08:16:04 +0000 Subject: [PATCH] Fixed a word boundary check bug in JIT when partial matching is enabled. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@1280 6239d852-aaf2-0410-a92c-79f79f948069 Petr Písař: Ported to 10.35. --- src/pcre2_jit_compile.c | 2 ++ testdata/testinput10 | 4 ++++ testdata/testoutput10 | 6 ++++++ diff --git a/src/pcre2_jit_compile.c b/src/pcre2_jit_compile.c index 04f0278..1977d28 100644 --- a/src/pcre2_jit_compile.c +++ b/src/pcre2_jit_compile.c @@ -6571,9 +6571,11 @@ if (common->invalid_utf) if (common->mode != PCRE2_JIT_COMPLETE) { + OP1(SLJIT_MOV, RETURN_ADDR, 0, TMP1, 0); OP1(SLJIT_MOV, TMP2, 0, STR_PTR, 0); move_back(common, NULL, TRUE); check_start_used_ptr(common); + OP1(SLJIT_MOV, TMP1, 0, RETURN_ADDR, 0); OP1(SLJIT_MOV, STR_PTR, 0, TMP2, 0); } } diff --git a/testdata/testinput10 b/testdata/testinput10 index efd3298..53e37cb 100644 --- a/testdata/testinput10 +++ b/testdata/testinput10 @@ -613,4 +613,8 @@ /A/utf,match_invalid_utf,caseless \xe5A +/\bch\b/utf,match_invalid_utf + qchq\=ph + qchq\=ps + # End of testinput10 diff --git a/testdata/testoutput10 b/testdata/testoutput10 index 2a3803f..d408510 100644 --- a/testdata/testoutput10 +++ b/testdata/testoutput10 @@ -1875,4 +1875,10 @@ Subject length lower bound = 1 \xe5A 0: A +/\bch\b/utf,match_invalid_utf + qchq\=ph +Partial match: + qchq\=ps +Partial match: + # End of testinput10 -- 2.25.4