summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>2020-02-25 16:47:36 +0000
committerph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>2020-02-25 16:47:36 +0000
commitf82582217bf85600b850b862148b8cb08bb7a2e5 (patch)
treecd7187496c2fbb6c82671fd7018772d23f38f521
parent2e54eab2c5b90d1e798b7de68651d5428c782b70 (diff)
downloadpcre2-f82582217bf85600b850b862148b8cb08bb7a2e5.tar.gz
Fix bug introduced in recent UCP changes (writing outside starting code unit
bitmap for non-UTF caseless character U+00DF). git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@1229 6239d852-aaf2-0410-a92c-79f79f948069
-rw-r--r--src/pcre2_study.c2
-rw-r--r--testdata/testinput52
-rw-r--r--testdata/testoutput52
3 files changed, 5 insertions, 1 deletions
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