about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-01-03 12:19:12 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-01-03 14:24:53 -0200
commit8dad72997af2be0dc72a4bc7dbe82d85c90334fc (patch)
treedc5d83dfccb1e2fba0354ecc9f13a538d47fbb42 /ChangeLog
parentd4d629e6187e33050902824a94498b6096eacac9 (diff)
downloadglibc-8dad72997af2be0dc72a4bc7dbe82d85c90334fc.tar.gz
glibc-8dad72997af2be0dc72a4bc7dbe82d85c90334fc.tar.xz
glibc-8dad72997af2be0dc72a4bc7dbe82d85c90334fc.zip
Fix x86 strncat optimized implementation for large sizes
Similar to BZ#19387, BZ#21014, and BZ#20971, both x86 sse2 strncat
optimized assembly implementations do not handle the size overflow
correctly.

The x86_64 one is in fact an issue with strcpy-sse2-unaligned, but
that is triggered also with strncat optimized implementation.

This patch uses a similar strategy used on 3daef2c8ee4df2, where
saturared math is used for overflow case.

Checked on x86_64-linux-gnu and i686-linux-gnu.  It fixes BZ #19390.

	[BZ #19390]
	* string/test-strncat.c (test_main): Add tests with SIZE_MAX as
	maximum string size.
	* sysdeps/i386/i686/multiarch/strcat-sse2.S (STRCAT): Avoid overflow
	in pointer addition.
	* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S (STRCPY):
	Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8af3a19951..1bb6eaa536 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2017-01-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	[BZ #19390]
+	* string/test-strncat.c (test_main): Add tests with SIZE_MAX as
+	maximum string size.
+	* sysdeps/i386/i686/multiarch/strcat-sse2.S (STRCAT): Avoid overflow
+	in pointer addition.
+	* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S (STRCPY):
+	Likewise.
+
 2017-01-03  Joseph Myers  <joseph@codesourcery.com>
 
 	* elf/Makefile ($(objpfx)tst-ldconfig-X.out): Correct arguments