Projects
Mega:24.03
pcre2
_service:tar_scm:backport-Fix-backreferences-wi...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-Fix-backreferences-with-unset-backref-and-non-greedy.patch of Package pcre2
From 9de4d53cf850e0fca625ce9d80c12bea5b2a5ab9 Mon Sep 17 00:00:00 2001 From: Zoltan Herczeg <hzmester@freemail.hu> Date: Thu, 7 Dec 2023 09:03:24 +0000 Subject: [PATCH] Fix backreferences with unset backref and non-greedy iterators in JIT --- src/pcre2_jit_compile.c | 3 ++- src/pcre2_jit_test.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pcre2_jit_compile.c b/src/pcre2_jit_compile.c index 0f445e1..e1daa1e 100644 --- a/src/pcre2_jit_compile.c +++ b/src/pcre2_jit_compile.c @@ -9653,7 +9653,8 @@ else { if (ref) { - add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1))); + if (!common->unset_backref) + add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1))); zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1)); } else diff --git a/src/pcre2_jit_test.c b/src/pcre2_jit_test.c index 0974d19..9b63c8e 100644 --- a/src/pcre2_jit_test.c +++ b/src/pcre2_jit_test.c @@ -596,6 +596,7 @@ static struct regression_test_case regression_test_cases[] = { { CMU | PCRE2_DUPNAMES, A, 0, 0, "(?:(?<A>AA)|(?<A>BB))\\k<A>{0,3}?M", "aaaaaabbbbbbaabbbbbbbbbbm" }, { CMU | PCRE2_DUPNAMES, A, 0, 0, "(?:(?<A>AA)|(?<A>BB))\\k<A>{2,3}?", "aaaabbbbaaaabbbbbbbbbb" }, { MU | PCRE2_MATCH_UNSET_BACKREF, A, 0, 0, "(a)|\\1+c", "xxc" }, + { MU | PCRE2_MATCH_UNSET_BACKREF, A, 0, 0, "\\1+?()", "" }, /* Assertions. */ { MU, A, 0, 0, "(?=xx|yy|zz)\\w{4}", "abczzdefg" }, -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2