about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2009-11-17 16:23:24 -0800
committerUlrich Drepper <drepper@redhat.com>2009-11-17 16:23:24 -0800
commit815d8147a3418334ffa91e2384c6e159f0809d65 (patch)
tree164ba2a49c0a9287af8894c6c12c12e3d5b33dc8 /ChangeLog
parent7443244740724babd575943ee33c45da326afbe7 (diff)
downloadglibc-815d8147a3418334ffa91e2384c6e159f0809d65.tar.gz
glibc-815d8147a3418334ffa91e2384c6e159f0809d65.tar.xz
glibc-815d8147a3418334ffa91e2384c6e159f0809d65.zip
Fix ranges with multibyte characters as endpoints.
This is another bug in computing the fastmap.  It was reported by a user
of sed because it usually does not happen with !_LIBC.  However, it is
there in that case too.

The bug is that whenever we have a range at the beginning of the regex,
the regex must be tested on any possible multibyte character.  The reason
why _LIBC masks it, is that in general there is a collation symbol for
each possible multibyte-character lead byte, so all the lead bytes are
in general already part of the fastmap.

The tests use cyrillic characters as an example.  With _LIBC, they pass
without the patch too, but you can make them fail by removing collation
symbols handling.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog8
1 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b92fd42c9d..0a6ae196a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-11-17  Paolo Bonzini  <bonzini@gnu.org>
+
+	* posix/bug-regex30.c: New file.
+	* posix/Makefile: Add rules to build and run bug-regex30.
+	* posix/regcomp.c (re_compile_fastmap_iter): Add all multibyte
+	character lead bytes when there is a range in a COMPLEX_BRACKET.
+	Reported by Oleg Bylatov.
+
 2009-11-17  Ulrich Drepper  <drepper@redhat.com>
 
 	[BZ #10969]