glibc/sysdeps/x86_64/multiarch
H.J. Lu 5165de69c0 x86-64 strnlen/wcsnlen: Properly handle the length parameter [BZ# 24097]
On x32, the size_t parameter may be passed in the lower 32 bits of a
64-bit register with the non-zero upper 32 bits.  The string/memory
functions written in assembly can only use the lower 32 bits of a
64-bit register as length or must clear the upper 32 bits before using
the full 64-bit register for length.

This pach fixes strnlen/wcsnlen for x32.  Tested on x86-64 and x32.  On
x86-64, libc.so is the same with and withou the fix.

	[BZ# 24097]
	CVE-2019-6488
	* sysdeps/x86_64/multiarch/strlen-avx2.S: Use RSI_LP for length.
	Clear the upper 32 bits of RSI register.
	* sysdeps/x86_64/strlen.S: Use RSI_LP for length.
	* sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strnlen
	and tst-size_t-wcsnlen.
	* sysdeps/x86_64/x32/tst-size_t-strnlen.c: New file.
	* sysdeps/x86_64/x32/tst-size_t-wcsnlen.c: Likewise.
2019-01-21 11:36:47 -08:00
..
Makefile x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
bcopy.S Use IFUNC memmove/memset in x86-64 bcopy/bzero 2012-10-11 13:58:16 -07:00
ifunc-avx2.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-impl-list.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
ifunc-memcmp.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-memmove.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-memset.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-sse4_2.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-strcasecmp.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifunc-strcpy.h x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
ifunc-wmemset.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memchr-avx2.S x86-64 memchr/wmemchr: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:24:13 -08:00
memchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcmp-avx2-movbe.S x86-64 memcmp/wmemcmp: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:26:07 -08:00
memcmp-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcmp-sse4.S x86-64 memcmp/wmemcmp: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:26:07 -08:00
memcmp-ssse3.S x86-64 memcmp/wmemcmp: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:26:07 -08:00
memcmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcpy-ssse3-back.S x86-64 memcpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:27:36 -08:00
memcpy-ssse3.S x86-64 memcpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:27:36 -08:00
memcpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcpy_chk-nonshared.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memcpy_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memmove-avx-unaligned-erms.S X86-64: Use non-temporal store in memcpy on large data 2016-04-12 08:10:47 -07:00
memmove-avx512-no-vzeroupper.S x86-64 memcpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:27:36 -08:00
memmove-avx512-unaligned-erms.S Require binutils 2.24 to build x86-64 glibc [BZ #20139] 2016-07-01 06:03:05 -07:00
memmove-sse2-unaligned-erms.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memmove-ssse3-back.S Improve 64bit memcpy/memmove for Atom, Core 2 and Core i7 2010-06-30 08:26:11 -07:00
memmove-ssse3.S Improve 64bit memcpy/memmove for Atom, Core 2 and Core i7 2010-06-30 08:26:11 -07:00
memmove-vec-unaligned-erms.S x86-64 memcpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:27:36 -08:00
memmove.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memmove_chk-nonshared.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memmove_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mempcpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mempcpy_chk-nonshared.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
mempcpy_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memrchr-avx2.S x86-64 memrchr: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:30:12 -08:00
memrchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memrchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memset-avx2-unaligned-erms.S x86-64: Optimize wmemset with SSE2/AVX2/AVX512 2017-06-05 11:09:59 -07:00
memset-avx512-no-vzeroupper.S x86-64 memset/wmemset: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:32:37 -08:00
memset-avx512-unaligned-erms.S x86-64: Optimize wmemset with SSE2/AVX2/AVX512 2017-06-05 11:09:59 -07:00
memset-sse2-unaligned-erms.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memset-vec-unaligned-erms.S x86-64 memset/wmemset: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:32:37 -08:00
memset.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memset_chk-nonshared.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
memset_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rawmemchr-avx2.S x86-64: Optimize memchr/rawmemchr/wmemchr with SSE2/AVX2 2017-06-09 05:13:31 -07:00
rawmemchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rawmemchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stpcpy-avx2.S x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
stpcpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpcpy-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stpcpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpcpy.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
stpncpy-avx2.S x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
stpncpy-c.c x86-64: Implement strcpy family IFUNC selectors in C 2017-06-12 09:06:09 -07:00
stpncpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpncpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
stpncpy.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strcasecmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcasecmp_l-avx.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcasecmp_l-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcasecmp_l-sse4_2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcasecmp_l-ssse3.S Fix x86-64 build without multiarch. 2010-08-14 14:56:32 -07:00
strcasecmp_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcat-avx2.S x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strcat-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcat-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcat-ssse3.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcat.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strchr-avx2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchr-sse2-no-bsf.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchrnul-avx2.S x86-64: Optimize strchr/strchrnul/wcschr with AVX2 2017-06-09 05:42:29 -07:00
strchrnul-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strchrnul.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcmp-avx2.S x86-64 strncmp family: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:34:04 -08:00
strcmp-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcmp-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcmp-sse4_2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcmp-sse42.S x86-64 strncmp family: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:34:04 -08:00
strcmp-ssse3.S Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
strcmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcpy-avx2.S x86-64 strncpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:35:34 -08:00
strcpy-sse2-unaligned.S x86-64 strncpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:35:34 -08:00
strcpy-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcpy-ssse3.S x86-64 strncpy: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:35:34 -08:00
strcpy.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strcspn-c.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcspn-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strcspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strlen-avx2.S x86-64 strnlen/wcsnlen: Properly handle the length parameter [BZ# 24097] 2019-01-21 11:36:47 -08:00
strlen-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncase.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncase_l-avx.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncase_l-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncase_l-sse4_2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncase_l-ssse3.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncase_l.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncat-avx2.S x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strncat-c.c x86-64: Use IFUNC strncat inside libc.so 2018-05-16 09:04:35 -07:00
strncat-sse2-unaligned.S Improve 64 bit strcat functions with SSE2/SSSE3 2011-07-19 17:11:54 -04:00
strncat-ssse3.S Improve 64 bit strcat functions with SSE2/SSSE3 2011-07-19 17:11:54 -04:00
strncat.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strncmp-avx2.S x86-64: Optimize strcmp/wcscmp and strncmp/wcsncmp with AVX2 2018-06-01 16:32:43 -05:00
strncmp-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncmp-sse4_2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncmp-ssse3.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strncpy-avx2.S x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strncpy-c.c x86-64: Implement strcpy family IFUNC selectors in C 2017-06-12 09:06:09 -07:00
strncpy-sse2-unaligned.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
strncpy-ssse3.S Improved st{r,p}{,n}cpy for SSE2 and SSSE3 on x86-64 2011-06-24 15:14:22 -04:00
strncpy.c x86-64: Optimize strcat/strncat, strcpy/strncpy and stpcpy/stpncpy with AVX2 2019-01-14 09:43:38 -06:00
strnlen-avx2.S x86-64: Optimize strlen/strnlen/wcslen/wcsnlen with AVX2 2017-06-09 05:18:18 -07:00
strnlen-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strnlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strpbrk-c.c x86-64: Implement strcspn/strpbrk/strspn IFUNC selectors in C 2017-06-15 08:59:05 -07:00
strpbrk-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strpbrk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strrchr-avx2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strrchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strrchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strspn-c.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strspn-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strspn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strstr-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strstr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-multiarch.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
varshift.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
varshift.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcschr-avx2.S x86-64: Optimize strchr/strchrnul/wcschr with AVX2 2017-06-09 05:42:29 -07:00
wcschr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcschr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscmp-avx2.S x86-64: Optimize strcmp/wcscmp and strncmp/wcsncmp with AVX2 2018-06-01 16:32:43 -05:00
wcscmp-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscpy-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wcscpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcscpy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcslen-avx2.S x86-64: Optimize strlen/strnlen/wcslen/wcsnlen with AVX2 2017-06-09 05:18:18 -07:00
wcslen-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcslen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncmp-avx2.S x86-64: Optimize strcmp/wcscmp and strncmp/wcsncmp with AVX2 2018-06-01 16:32:43 -05:00
wcsncmp-sse2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsncmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsnlen-avx2.S x86-64: Optimize strlen/strnlen/wcslen/wcsnlen with AVX2 2017-06-09 05:18:18 -07:00
wcsnlen-c.c x86-64: Move wcsnlen.S to multiarch/wcsnlen-sse4_1.S 2017-06-06 06:12:32 -07:00
wcsnlen-sse4_1.S x86-64: Move wcsnlen.S to multiarch/wcsnlen-sse4_1.S 2017-06-06 06:12:32 -07:00
wcsnlen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsrchr-avx2.S x86-64: Optimize strrchr/wcsrchr with AVX2 2017-06-09 05:45:52 -07:00
wcsrchr-sse2.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wcsrchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemchr-avx2.S x86-64: Optimize memchr/rawmemchr/wmemchr with SSE2/AVX2 2017-06-09 05:13:31 -07:00
wmemchr-sse2.S x86-64: Optimize memchr/rawmemchr/wmemchr with SSE2/AVX2 2017-06-09 05:13:31 -07:00
wmemchr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemcmp-avx2-movbe.S x86-64: Optimize memcmp/wmemcmp with AVX2 and MOVBE 2017-06-05 12:52:55 -07:00
wmemcmp-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wmemcmp-sse4.S Optimized memcmp and wmemcmp for x86-64 and x86-32 2011-10-15 11:10:08 -04:00
wmemcmp-ssse3.S Optimized memcmp and wmemcmp for x86-64 and x86-32 2011-10-15 11:10:08 -04:00
wmemcmp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset_chk-nonshared.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemset_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00