From 68f9c495178a04e055cf1b25e63edd0e59461183 Mon Sep 17 00:00:00 2001 From: "Philip.Hazel" Date: Tue, 25 Feb 2020 16:47:36 +0000 Subject: [PATCH] Fix bug introduced in recent UCP changes (writing outside starting code unit bitmap for non-UTF caseless character U+00DF). --- src/pcre2_study.c | 2 +- testdata/testinput5 | 2 ++ testdata/testoutput5 | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pcre2_study.c b/src/pcre2_study.c index 02d1c08..fc29969 100644 --- a/src/pcre2_study.c +++ b/src/pcre2_study.c @@ -824,7 +824,7 @@ if (caseless) (void)PRIV(ord2utf)(c, buff); SET_BIT(buff[0]); } - else SET_BIT(c); + else if (c < 256) SET_BIT(c); #else /* 16-bit or 32-bit mode */ if (c > 0xff) SET_BIT(0xff); else SET_BIT(c); #endif diff --git a/testdata/testinput5 b/testdata/testinput5 index d90b66d..b3fcfef 100644 --- a/testdata/testinput5 +++ b/testdata/testinput5 @@ -2179,4 +2179,6 @@ /\p{Any}*xyz/I +/(|ß)7/caseless,ucp + # End of testinput5 diff --git a/testdata/testoutput5 b/testdata/testoutput5 index ecf01fb..5bdf873 100644 --- a/testdata/testoutput5 +++ b/testdata/testoutput5 @@ -4938,4 +4938,6 @@ Overall options: anchored Last code unit = 'z' Subject length lower bound = 3 +/(|ß)7/caseless,ucp + # End of testinput5