about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:05 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:05 +0200
commit52f8a48e24563daa807f94824ce9782b9a9eece9 (patch)
tree7193d36ccddad30729d44e9d5c7b4cc3c42c4304 /ChangeLog
parentee518b7070b1bcb41382b6db10f513e071b2c20e (diff)
downloadglibc-52f8a48e24563daa807f94824ce9782b9a9eece9.tar.gz
glibc-52f8a48e24563daa807f94824ce9782b9a9eece9.tar.xz
glibc-52f8a48e24563daa807f94824ce9782b9a9eece9.zip
S390: Fix utf32 to utf8 handling of low surrogates (disable cu41).
According to the latest Unicode standard, a conversion from/to UTF-xx has
to report an error if the character value is in range of an utf16 surrogate
(0xd800..0xdfff). See https://sourceware.org/ml/libc-help/2015-12/msg00015.html.

Thus the cu41 instruction, which converts from utf32 to utf8,  has to be
disabled because it does not report an error in case of a value in range of
a low surrogate (0xdc00..0xdfff). The etf3eh variant is removed and the c,
vector variant is adjusted to handle the value in range of an utf16 low
surrogate correctly.

ChangeLog:

	* sysdeps/s390/utf8-utf32-z9.c: Disable cu41 instruction and report
	an error in case of a value in range of an utf16 low surrogate.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog5
1 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 78afe17d2d..b50c3d07ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2016-05-25  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
+	* sysdeps/s390/utf8-utf32-z9.c: Disable cu41 instruction and report
+	an error in case of a value in range of an utf16 low surrogate.
+
+2016-05-25  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
 	* sysdeps/s390/s390-64/Makefile (iconvdata-subdirectory):
 	Move to ...
 	* sysdeps/s390/Makefile: ... here.