Skip to content

Commit 25d8d6c

Browse files
committed
Restore buffer after an ACCEPT inside an scan substring block
1 parent ddb0df4 commit 25d8d6c

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/pcre2_match.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5895,6 +5895,9 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode,
58955895
assert_accept_frame->offset_top * sizeof(PCRE2_SIZE));
58965896
Foffset_top = assert_accept_frame->offset_top;
58975897
Fmark = assert_accept_frame->mark;
5898+
mb->end_subject = Lsaved_end_subject;
5899+
mb->true_end_subject = mb->end_subject + Ltrue_end_extra;
5900+
mb->moptions = Lsaved_moptions;
58985901
break;
58995902
}
59005903

testdata/testinput2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6753,6 +6753,9 @@ a)"xI
67536753
abxyz
67546754
efgxyz
67556755

6756+
/(a)(b+)(*scs:(1)a(*ACCEPT))(\2)/
6757+
abbb
6758+
67566759
# Duplicated capture references
67576760

67586761
/(a)(b)(c)(d)(*scs:(4,3,1,2,2,1,3,3,4,4)x)/B

testdata/testoutput2

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20258,6 +20258,13 @@ No match
2025820258
2:
2025920259
3:
2026020260

20261+
/(a)(b+)(*scs:(1)a(*ACCEPT))(\2)/
20262+
abbb
20263+
0: abb
20264+
1: a
20265+
2: b
20266+
3: b
20267+
2026120268
# Duplicated capture references
2026220269

2026320270
/(a)(b)(c)(d)(*scs:(4,3,1,2,2,1,3,3,4,4)x)/B

0 commit comments

Comments
 (0)