On x32, size_t is 32 bit. We must not use 64-bit register for size_t in assembly codes for x32: [hjl@gnu-cfl-1 size-1]$ cat tst-size_t-1.c #include <string.h> #include <stdlib.h> #include <sys/mman.h> struct foo { size_t len; void *p; }; static void __attribute__ ((noinline, noclone)) func (struct foo a, struct foo b) { memcpy (a.p, b.p, a.len); } int main (void) { char bufb[20] = "foo"; struct foo b = { sizeof (bufb), bufb }; char *bufa = (char*)mmap(NULL, 0x1000, PROT_WRITE|PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); struct foo a = { 0x1000, bufa }; func (a, b); if (memcmp (bufa, bufb, sizeof (bufa))) abort (); return 0; } [hjl@gnu-cfl-1 size-1]$ make tst-size_t-1-dynamic gcc -mx32 -g -O2 -c -o tst-size_t-1.o tst-size_t-1.c gcc -mx32 -L. -nostdlib -nostartfiles -o tst-size_t-1-dynamic \ -Wl,-dynamic-linker=/export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2 \ -Wl,-z,nocombreloc \ /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/csu/crt1.o /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/csu/crti.o \ `gcc -mx32 --print-file-name=crtbegin.o` \ tst-size_t-1.o \ -Wl,-rpath=/export/build/gnu/tools-build/glibc-x32/build-x86_64-linux:/export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/nptl:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../libx32:. \ \ \ \ /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc.so.6 \ /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2 \ /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc_nonshared.a \ -Wl,-as-needed /usr/lib/gcc/x86_64-redhat-linux/8/x32/libgcc_s.so -Wl,--no-as-needed `gcc -mx32 --print-file-name=crtend.o` \ /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/csu/crtn.o [hjl@gnu-cfl-1 size-1]$ gdb tst-size_t-1-dynamic GNU gdb (GDB) Fedora 8.2-6.fc29 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... BFD: warning: /export/home/hjl/bugs/libc/size-1/tst-size_t-1-dynamic: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/home/hjl/bugs/libc/size-1/tst-size_t-1-dynamic: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 BFD: warning: /export/home/hjl/bugs/libc/size-1/tst-size_t-1-dynamic: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/home/hjl/bugs/libc/size-1/tst-size_t-1-dynamic: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 Reading symbols from tst-size_t-1-dynamic...done. (gdb) b func Breakpoint 1 at 0x4011c0: file tst-size_t-1.c, line 15. (gdb) r Starting program: /export/home/hjl/bugs/libc/size-1/tst-size_t-1-dynamic BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc.so.6: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc.so.6: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc.so.6: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010000 BFD: warning: /export/build/gnu/tools-build/glibc-x32/build-x86_64-linux/libc.so.6: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 Breakpoint 1, func (a=..., b=b@entry=...) at tst-size_t-1.c:15 15 memcpy (a.p, b.p, a.len); (gdb) step __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:222 222 movq %rdi, %rax (gdb) p/x $rdx $1 = 0xf7e1f00000001000 (gdb) f 1 #1 0x004010cb in main () at tst-size_t-1.c:28 28 func (a, b); (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:376 376 VMOVU -VEC_SIZE(%rsi, %rdx), %VEC(5) (gdb)
Note: This bug only affects the x32 architecture, which is distinct from the i386/i686 architecture and the x86-64 architecture.
Fixed for 2.29: commit 5165de69c0908e28a380cbd4bb054e55ea4abc95 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Jan 21 11:36:36 2019 -0800 x86-64 strnlen/wcsnlen: Properly handle the length parameter [BZ# 24097]
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via 492524a691f6df1f6e896d2f616ff24f15f18d86 (commit) from b297581acb66f80b513996c1580158b0fb12d469 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=492524a691f6df1f6e896d2f616ff24f15f18d86 commit 492524a691f6df1f6e896d2f616ff24f15f18d86 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:17:09 2019 -0800 x86-64 memchr/wmemchr: 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 memchr/wmemchr 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/memchr.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr and tst-size_t-wmemchr. * sysdeps/x86_64/x32/test-size_t.h: New file. * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wmemchr.c: Likewise. (cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 13 ++++++ NEWS | 8 +++ sysdeps/x86_64/memchr.S | 10 +++- sysdeps/x86_64/multiarch/memchr-avx2.S | 8 +++- sysdeps/x86_64/x32/Makefile | 8 +++ sysdeps/x86_64/x32/test-size_t.h | 35 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wmemchr.c | 20 +++++++++ 8 files changed, 169 insertions(+), 5 deletions(-) create mode 100644 sysdeps/x86_64/x32/test-size_t.h create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemchr.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via f57666aa307a49950bc208269062d638b84f65b0 (commit) from 492524a691f6df1f6e896d2f616ff24f15f18d86 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f57666aa307a49950bc208269062d638b84f65b0 commit f57666aa307a49950bc208269062d638b84f65b0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:19:07 2019 -0800 x86-64 memcmp/wmemcmp: 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 memcmp/wmemcmp 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/memcmp-avx2-movbe.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise. * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and tst-size_t-wmemcmp. * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise. (cherry picked from commit b304fc201d2f6baf52ea790df8643e99772243cd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 13 +++++ sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S | 7 ++- sysdeps/x86_64/multiarch/memcmp-sse4.S | 9 ++- sysdeps/x86_64/multiarch/memcmp-ssse3.S | 7 ++- sysdeps/x86_64/x32/Makefile | 4 +- .../{tst-size_t-memchr.c => tst-size_t-memcmp.c} | 50 +++++++++++--------- .../{tst-size_t-wmemchr.c => tst-size_t-wmemcmp.c} | 4 +- 7 files changed, 60 insertions(+), 34 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-memchr.c => tst-size_t-memcmp.c} (62%) copy sysdeps/x86_64/x32/{tst-size_t-wmemchr.c => tst-size_t-wmemcmp.c} (89%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via 781403407b3a432c8fd28cb1f630a63244eb4394 (commit) from f57666aa307a49950bc208269062d638b84f65b0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=781403407b3a432c8fd28cb1f630a63244eb4394 commit 781403407b3a432c8fd28cb1f630a63244eb4394 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:06 2019 -0800 x86-64 memcpy: 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 memcpy 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/memcpy-ssse3-back.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S: Likewise. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy. tst-size_t-wmemchr. * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file. (cherry picked from commit 231c56760c1e2ded21ad96bbb860b1f08c556c7a) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 15 ++++++ sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 17 ++++-- sysdeps/x86_64/multiarch/memcpy-ssse3.S | 17 ++++-- .../multiarch/memmove-avx512-no-vzeroupper.S | 16 ++++-- .../x86_64/multiarch/memmove-vec-unaligned-erms.S | 54 +++++++++++-------- sysdeps/x86_64/x32/Makefile | 2 +- .../{tst-size_t-memcmp.c => tst-size_t-memcpy.c} | 36 +++---------- 7 files changed, 88 insertions(+), 69 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-memcmp.c => tst-size_t-memcpy.c} (67%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via eee0a3d04b8226abd8a6ca077094afbb3559dddb (commit) from 781403407b3a432c8fd28cb1f630a63244eb4394 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eee0a3d04b8226abd8a6ca077094afbb3559dddb commit eee0a3d04b8226abd8a6ca077094afbb3559dddb Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:54 2019 -0800 x86-64 memrchr: 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 memrchr 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/memrchr.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/memrchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr. * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file. (cherry picked from commit ecd8b842cf37ea112e59cd9085ff1f1b6e208ae0) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 9 +++++++ sysdeps/x86_64/memrchr.S | 4 +- sysdeps/x86_64/multiarch/memrchr-avx2.S | 4 +- sysdeps/x86_64/x32/Makefile | 3 +- .../{tst-size_t-memcpy.c => tst-size_t-memrchr.c} | 23 +++++++++---------- 5 files changed, 26 insertions(+), 17 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-memcpy.c => tst-size_t-memrchr.c} (69%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via 17fc7debccbf7efeaead08073b5ae23ba5197a43 (commit) from eee0a3d04b8226abd8a6ca077094afbb3559dddb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=17fc7debccbf7efeaead08073b5ae23ba5197a43 commit 17fc7debccbf7efeaead08073b5ae23ba5197a43 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:21:41 2019 -0800 x86-64 memset/wmemset: 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 memset/wmemset 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/memset-avx512-no-vzeroupper.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-wmemset. * sysdeps/x86_64/x32/tst-size_t-memset.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemset.c: Likewise. (cherry picked from commit 82d0b4a4d76db554eb6757acb790fcea30b19965) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 11 +++++ .../x86_64/multiarch/memset-avx512-no-vzeroupper.S | 6 ++- .../x86_64/multiarch/memset-vec-unaligned-erms.S | 34 +++++++++----- sysdeps/x86_64/x32/Makefile | 4 +- .../{tst-size_t-memchr.c => tst-size_t-memset.c} | 47 ++++++++++---------- .../{tst-size_t-wmemchr.c => tst-size_t-wmemset.c} | 4 +- 6 files changed, 65 insertions(+), 41 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-memchr.c => tst-size_t-memset.c} (68%) copy sysdeps/x86_64/x32/{tst-size_t-wmemchr.c => tst-size_t-wmemset.c} (89%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via c678b802331360e018c626db685ada99424a8749 (commit) from 17fc7debccbf7efeaead08073b5ae23ba5197a43 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c678b802331360e018c626db685ada99424a8749 commit c678b802331360e018c626db685ada99424a8749 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:22:33 2019 -0800 x86-64 strncmp family: 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 the strncmp family 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/strcmp-avx2.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise. * sysdeps/x86_64/strcmp.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp, tst-size_t-strncmp and tst-size_t-wcsncmp. * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise. (cherry picked from commit ee915088a0231cd421054dbd8abab7aadf331153) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 13 +++++ sysdeps/x86_64/multiarch/strcmp-avx2.S | 6 +- sysdeps/x86_64/multiarch/strcmp-sse42.S | 6 +- sysdeps/x86_64/strcmp.S | 6 +- sysdeps/x86_64/x32/Makefile | 6 ++- sysdeps/x86_64/x32/tst-size_t-strncasecmp.c | 59 ++++++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncmp.c | 78 +++++++++++++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wcsncmp.c | 20 +++++++ 8 files changed, 183 insertions(+), 11 deletions(-) create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncasecmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via 07a42c0effbea499a2ed88e19e7a8bd6f1653f48 (commit) from c678b802331360e018c626db685ada99424a8749 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=07a42c0effbea499a2ed88e19e7a8bd6f1653f48 commit 07a42c0effbea499a2ed88e19e7a8bd6f1653f48 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:23:23 2019 -0800 x86-64 strncpy: 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 strncpy 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/strcpy-sse2-unaligned.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy. * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file. (cherry picked from commit c7c54f65b080affb87a1513dee449c8ad6143c8b) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 10 ++++++++++ sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S | 4 ++-- sysdeps/x86_64/multiarch/strcpy-ssse3.S | 6 +++--- sysdeps/x86_64/x32/Makefile | 2 +- .../{tst-size_t-memcpy.c => tst-size_t-strncpy.c} | 14 +++++++------- 5 files changed, 23 insertions(+), 13 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-memcpy.c => tst-size_t-strncpy.c} (81%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.28/master has been updated via d09b11cbe57c6434813ead18ff128012230bb614 (commit) from 07a42c0effbea499a2ed88e19e7a8bd6f1653f48 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d09b11cbe57c6434813ead18ff128012230bb614 commit d09b11cbe57c6434813ead18ff128012230bb614 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:24:08 2019 -0800 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. (cherry picked from commit 5165de69c0908e28a380cbd4bb054e55ea4abc95) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 12 ++++++ sysdeps/x86_64/multiarch/strlen-avx2.S | 9 +++- sysdeps/x86_64/strlen.S | 12 +++--- sysdeps/x86_64/x32/Makefile | 4 +- .../{tst-size_t-strncmp.c => tst-size_t-strnlen.c} | 40 ++++++++----------- .../{tst-size_t-wcsncmp.c => tst-size_t-wcsnlen.c} | 4 +- 6 files changed, 45 insertions(+), 36 deletions(-) copy sysdeps/x86_64/x32/{tst-size_t-strncmp.c => tst-size_t-strnlen.c} (66%) copy sysdeps/x86_64/x32/{tst-size_t-wcsncmp.c => tst-size_t-wcsnlen.c} (89%)
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.27/master has been updated via 3a5ae8db6829d4c7f004fb1cda716f5ecfb3e97f (commit) via 2c016ffa240007125530edc6342c5b03e40208fd (commit) via d8457edece3445bbe5c38515f3378eb4fb55a327 (commit) via 55f881285835f271d2c1c5f0610139b46fe586d6 (commit) via efc37148450ddc93cd5fffa20c037dc07cf52fb0 (commit) via a4690969edece0ed91813ba89d14c0cd64a68b0e (commit) via 64653271959707ffeec000513355cf8db645a387 (commit) via 50117e00a1efc9a103676cae9f86204f17b68bcc (commit) from 68c2930a56bbc8811b1814cb20386f6f50dd966d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a5ae8db6829d4c7f004fb1cda716f5ecfb3e97f commit 3a5ae8db6829d4c7f004fb1cda716f5ecfb3e97f Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:24:08 2019 -0800 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. (cherry picked from commit 5165de69c0908e28a380cbd4bb054e55ea4abc95) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2c016ffa240007125530edc6342c5b03e40208fd commit 2c016ffa240007125530edc6342c5b03e40208fd Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:23:23 2019 -0800 x86-64 strncpy: 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 strncpy 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/strcpy-sse2-unaligned.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy. * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file. (cherry picked from commit c7c54f65b080affb87a1513dee449c8ad6143c8b) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d8457edece3445bbe5c38515f3378eb4fb55a327 commit d8457edece3445bbe5c38515f3378eb4fb55a327 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:22:33 2019 -0800 x86-64 strncmp family: 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 the strncmp family 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/strcmp-sse42.S: Use RDX_LP for length. * sysdeps/x86_64/strcmp.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp, tst-size_t-strncmp and tst-size_t-wcsncmp. * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise. (cherry picked from commit ee915088a0231cd421054dbd8abab7aadf331153) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=55f881285835f271d2c1c5f0610139b46fe586d6 commit 55f881285835f271d2c1c5f0610139b46fe586d6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:21:41 2019 -0800 x86-64 memset/wmemset: 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 memset/wmemset 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/memset-avx512-no-vzeroupper.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-wmemset. * sysdeps/x86_64/x32/tst-size_t-memset.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemset.c: Likewise. (cherry picked from commit 82d0b4a4d76db554eb6757acb790fcea30b19965) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=efc37148450ddc93cd5fffa20c037dc07cf52fb0 commit efc37148450ddc93cd5fffa20c037dc07cf52fb0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:54 2019 -0800 x86-64 memrchr: 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 memrchr 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/memrchr.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/memrchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr. * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file. (cherry picked from commit ecd8b842cf37ea112e59cd9085ff1f1b6e208ae0) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a4690969edece0ed91813ba89d14c0cd64a68b0e commit a4690969edece0ed91813ba89d14c0cd64a68b0e Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:06 2019 -0800 x86-64 memcpy: 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 memcpy 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/memcpy-ssse3-back.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S: Likewise. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy. tst-size_t-wmemchr. * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file. (cherry picked from commit 231c56760c1e2ded21ad96bbb860b1f08c556c7a) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=64653271959707ffeec000513355cf8db645a387 commit 64653271959707ffeec000513355cf8db645a387 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:19:07 2019 -0800 x86-64 memcmp/wmemcmp: 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 memcmp/wmemcmp 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/memcmp-avx2-movbe.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise. * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and tst-size_t-wmemcmp. * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise. (cherry picked from commit b304fc201d2f6baf52ea790df8643e99772243cd) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=50117e00a1efc9a103676cae9f86204f17b68bcc commit 50117e00a1efc9a103676cae9f86204f17b68bcc Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:17:09 2019 -0800 x86-64 memchr/wmemchr: 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 memchr/wmemchr 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/memchr.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr and tst-size_t-wmemchr. * sysdeps/x86_64/x32/test-size_t.h: New file. * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wmemchr.c: Likewise. (cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 95 ++++++++++++++++++++ NEWS | 7 ++ sysdeps/x86_64/memchr.S | 10 ++- sysdeps/x86_64/memrchr.S | 4 +- sysdeps/x86_64/multiarch/memchr-avx2.S | 8 ++- sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S | 7 +- sysdeps/x86_64/multiarch/memcmp-sse4.S | 9 ++- sysdeps/x86_64/multiarch/memcmp-ssse3.S | 7 +- sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 17 +++-- sysdeps/x86_64/multiarch/memcpy-ssse3.S | 17 +++-- .../multiarch/memmove-avx512-no-vzeroupper.S | 16 ++-- .../x86_64/multiarch/memmove-vec-unaligned-erms.S | 50 ++++++----- sysdeps/x86_64/multiarch/memrchr-avx2.S | 4 +- .../x86_64/multiarch/memset-avx512-no-vzeroupper.S | 6 +- .../x86_64/multiarch/memset-vec-unaligned-erms.S | 32 ++++--- sysdeps/x86_64/multiarch/strcmp-sse42.S | 6 +- sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S | 4 +- sysdeps/x86_64/multiarch/strcpy-ssse3.S | 6 +- sysdeps/x86_64/multiarch/strlen-avx2.S | 9 ++- sysdeps/x86_64/strcmp.S | 6 +- sysdeps/x86_64/strlen.S | 12 ++-- sysdeps/x86_64/x32/Makefile | 11 +++ sysdeps/x86_64/x32/test-size_t.h | 35 +++++++ sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcmp.c | 76 ++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcpy.c | 58 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-memrchr.c | 57 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-memset.c | 73 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncasecmp.c | 59 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncmp.c | 78 ++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncpy.c | 58 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-strnlen.c | 72 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wcsncmp.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wcsnlen.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemchr.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemcmp.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemset.c | 20 ++++ 37 files changed, 993 insertions(+), 88 deletions(-) create mode 100644 sysdeps/x86_64/x32/test-size_t.h create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memrchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memset.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncasecmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemset.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.26/master has been updated via dc968f557398565d416dab69224f722c1d2beb9b (commit) via 40575878cd2cb00c7fe6de1da9811e1c5ab2c0c6 (commit) via 15ce2f62f6bc04b87152e583549147073d71b1d2 (commit) via 885e4af2ac9b272d6ddd7f9c1954d0364d7ebab3 (commit) via c9ea2e82d4f4002b162f427c4761c5bec6ee6876 (commit) via 94b88894b15d8a0dcce3d3b17e04880d72f2a9a7 (commit) via 232a7628f01c1ed93144e3115b240950ec07e8f3 (commit) via bff8346b0184b15fbb80863112133f48a7bd62a9 (commit) from 7ab39c6a3cd4a61a2be3d2e6a2a56f4dccca9750 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dc968f557398565d416dab69224f722c1d2beb9b commit dc968f557398565d416dab69224f722c1d2beb9b Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:24:08 2019 -0800 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. (cherry picked from commit 5165de69c0908e28a380cbd4bb054e55ea4abc95) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=40575878cd2cb00c7fe6de1da9811e1c5ab2c0c6 commit 40575878cd2cb00c7fe6de1da9811e1c5ab2c0c6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:23:23 2019 -0800 x86-64 strncpy: 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 strncpy 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/strcpy-sse2-unaligned.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy. * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file. (cherry picked from commit c7c54f65b080affb87a1513dee449c8ad6143c8b) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=15ce2f62f6bc04b87152e583549147073d71b1d2 commit 15ce2f62f6bc04b87152e583549147073d71b1d2 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:22:33 2019 -0800 x86-64 strncmp family: 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 the strncmp family 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/strcmp-sse42.S: Use RDX_LP for length. * sysdeps/x86_64/strcmp.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp, tst-size_t-strncmp and tst-size_t-wcsncmp. * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise. (cherry picked from commit ee915088a0231cd421054dbd8abab7aadf331153) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=885e4af2ac9b272d6ddd7f9c1954d0364d7ebab3 commit 885e4af2ac9b272d6ddd7f9c1954d0364d7ebab3 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:21:41 2019 -0800 x86-64 memset/wmemset: 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 memset/wmemset 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/memset-avx512-no-vzeroupper.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-wmemset. * sysdeps/x86_64/x32/tst-size_t-memset.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemset.c: Likewise. (cherry picked from commit 82d0b4a4d76db554eb6757acb790fcea30b19965) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c9ea2e82d4f4002b162f427c4761c5bec6ee6876 commit c9ea2e82d4f4002b162f427c4761c5bec6ee6876 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:54 2019 -0800 x86-64 memrchr: 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 memrchr 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/memrchr.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/memrchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr. * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file. (cherry picked from commit ecd8b842cf37ea112e59cd9085ff1f1b6e208ae0) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=94b88894b15d8a0dcce3d3b17e04880d72f2a9a7 commit 94b88894b15d8a0dcce3d3b17e04880d72f2a9a7 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:06 2019 -0800 x86-64 memcpy: 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 memcpy 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/memcpy-ssse3-back.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S: Likewise. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy. tst-size_t-wmemchr. * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file. (cherry picked from commit 231c56760c1e2ded21ad96bbb860b1f08c556c7a) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=232a7628f01c1ed93144e3115b240950ec07e8f3 commit 232a7628f01c1ed93144e3115b240950ec07e8f3 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:19:07 2019 -0800 x86-64 memcmp/wmemcmp: 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 memcmp/wmemcmp 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/memcmp-avx2-movbe.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise. * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and tst-size_t-wmemcmp. * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise. (cherry picked from commit b304fc201d2f6baf52ea790df8643e99772243cd) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bff8346b0184b15fbb80863112133f48a7bd62a9 commit bff8346b0184b15fbb80863112133f48a7bd62a9 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:17:09 2019 -0800 x86-64 memchr/wmemchr: 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 memchr/wmemchr 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/memchr.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memchr-avx2.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr and tst-size_t-wmemchr. * sysdeps/x86_64/x32/test-size_t.h: New file. * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wmemchr.c: Likewise. (cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 95 ++++++++++++++++++++ NEWS | 7 ++ sysdeps/x86_64/memchr.S | 10 ++- sysdeps/x86_64/memrchr.S | 4 +- sysdeps/x86_64/multiarch/memchr-avx2.S | 8 ++- sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S | 7 +- sysdeps/x86_64/multiarch/memcmp-sse4.S | 9 ++- sysdeps/x86_64/multiarch/memcmp-ssse3.S | 7 +- sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 17 +++-- sysdeps/x86_64/multiarch/memcpy-ssse3.S | 17 +++-- .../multiarch/memmove-avx512-no-vzeroupper.S | 16 ++-- .../x86_64/multiarch/memmove-vec-unaligned-erms.S | 50 ++++++----- sysdeps/x86_64/multiarch/memrchr-avx2.S | 4 +- .../x86_64/multiarch/memset-avx512-no-vzeroupper.S | 6 +- .../x86_64/multiarch/memset-vec-unaligned-erms.S | 32 ++++--- sysdeps/x86_64/multiarch/strcmp-sse42.S | 6 +- sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S | 4 +- sysdeps/x86_64/multiarch/strcpy-ssse3.S | 6 +- sysdeps/x86_64/multiarch/strlen-avx2.S | 9 ++- sysdeps/x86_64/strcmp.S | 6 +- sysdeps/x86_64/strlen.S | 12 ++-- sysdeps/x86_64/x32/Makefile | 11 +++ sysdeps/x86_64/x32/test-size_t.h | 35 +++++++ sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcmp.c | 76 ++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcpy.c | 58 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-memrchr.c | 57 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-memset.c | 73 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncasecmp.c | 59 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncmp.c | 78 ++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncpy.c | 58 ++++++++++++ sysdeps/x86_64/x32/tst-size_t-strnlen.c | 72 +++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wcsncmp.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wcsnlen.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemchr.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemcmp.c | 20 ++++ sysdeps/x86_64/x32/tst-size_t-wmemset.c | 20 ++++ 37 files changed, 993 insertions(+), 88 deletions(-) create mode 100644 sysdeps/x86_64/x32/test-size_t.h create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memrchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memset.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncasecmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemset.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.25/master has been updated via f728a542bf8f9f30709f8d16a5cfceaa060956ce (commit) via 3a84199109d2baedd76849fa6743e773852ecccf (commit) via c69b892fea74b025ca300005f2971f6a872d8497 (commit) via 80647620ced948090360fb6bd62eba4bf1c6436d (commit) via 59c463c4ea16d1e68f2ba6541245ada44b098f8e (commit) via e6597e77d1320fea52d73a2434066f44cb04872e (commit) via 97a5229eafded22c0fd86e3a0b6bf1ad6d804666 (commit) via 8d525c4a76dcb8e2ebf4f9897e5818b0c2f568d9 (commit) from 6b95c49d8e2b0bea8b2edcf13827e37e477fb19e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f728a542bf8f9f30709f8d16a5cfceaa060956ce commit f728a542bf8f9f30709f8d16a5cfceaa060956ce Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:24:08 2019 -0800 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/strlen.S: Use RSI_LP for length. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strnlen. * sysdeps/x86_64/x32/tst-size_t-strnlen.c: New file. (cherry picked from commit 5165de69c0908e28a380cbd4bb054e55ea4abc95) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a84199109d2baedd76849fa6743e773852ecccf commit 3a84199109d2baedd76849fa6743e773852ecccf Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:23:23 2019 -0800 x86-64 strncpy: 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 strncpy 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/strcpy-sse2-unaligned.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy. * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file. (cherry picked from commit c7c54f65b080affb87a1513dee449c8ad6143c8b) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c69b892fea74b025ca300005f2971f6a872d8497 commit c69b892fea74b025ca300005f2971f6a872d8497 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:22:33 2019 -0800 x86-64 strncmp family: 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 the strncmp family 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/strcmp-sse42.S: Use RDX_LP for length. * sysdeps/x86_64/strcmp.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp, tst-size_t-strncmp and tst-size_t-wcsncmp. * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise. (cherry picked from commit ee915088a0231cd421054dbd8abab7aadf331153) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=80647620ced948090360fb6bd62eba4bf1c6436d commit 80647620ced948090360fb6bd62eba4bf1c6436d Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:21:41 2019 -0800 x86-64 memset/wmemset: 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 memset/wmemset 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/memset-avx512-no-vzeroupper.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memset. * sysdeps/x86_64/x32/tst-size_t-memset.c: New file. (cherry picked from commit 82d0b4a4d76db554eb6757acb790fcea30b19965) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=59c463c4ea16d1e68f2ba6541245ada44b098f8e commit 59c463c4ea16d1e68f2ba6541245ada44b098f8e Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:54 2019 -0800 x86-64 memrchr: 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 memrchr 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/memrchr.S: Use RDX_LP for length. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr. * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file. (cherry picked from commit ecd8b842cf37ea112e59cd9085ff1f1b6e208ae0) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e6597e77d1320fea52d73a2434066f44cb04872e commit e6597e77d1320fea52d73a2434066f44cb04872e Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:06 2019 -0800 x86-64 memcpy: 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 memcpy 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/memcpy-ssse3-back.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S: Likewise. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy. tst-size_t-wmemchr. * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file. (cherry picked from commit 231c56760c1e2ded21ad96bbb860b1f08c556c7a) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=97a5229eafded22c0fd86e3a0b6bf1ad6d804666 commit 97a5229eafded22c0fd86e3a0b6bf1ad6d804666 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:19:07 2019 -0800 x86-64 memcmp/wmemcmp: 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 memcmp/wmemcmp 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/memcmp-sse4.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and tst-size_t-wmemcmp. * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise. (cherry picked from commit b304fc201d2f6baf52ea790df8643e99772243cd) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8d525c4a76dcb8e2ebf4f9897e5818b0c2f568d9 commit 8d525c4a76dcb8e2ebf4f9897e5818b0c2f568d9 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:17:09 2019 -0800 x86-64 memchr/wmemchr: 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 memchr/wmemchr 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/memchr.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr. * sysdeps/x86_64/x32/test-size_t.h: New file. * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. (cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 85 ++++++++++++++++++++ NEWS | 7 ++ sysdeps/x86_64/memchr.S | 7 +- sysdeps/x86_64/memrchr.S | 4 +- sysdeps/x86_64/multiarch/memcmp-sse4.S | 9 ++- sysdeps/x86_64/multiarch/memcmp-ssse3.S | 7 +- sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 17 +++-- sysdeps/x86_64/multiarch/memcpy-ssse3.S | 17 +++-- .../multiarch/memmove-avx512-no-vzeroupper.S | 16 +++-- .../x86_64/multiarch/memmove-vec-unaligned-erms.S | 46 ++++++----- .../x86_64/multiarch/memset-avx512-no-vzeroupper.S | 6 +- .../x86_64/multiarch/memset-vec-unaligned-erms.S | 26 ++++-- sysdeps/x86_64/multiarch/strcmp-sse42.S | 6 +- sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S | 4 +- sysdeps/x86_64/multiarch/strcpy-ssse3.S | 6 +- sysdeps/x86_64/strcmp.S | 6 +- sysdeps/x86_64/strlen.S | 10 +- sysdeps/x86_64/x32/Makefile | 10 +++ sysdeps/x86_64/x32/test-size_t.h | 35 ++++++++ sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcmp.c | 76 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcpy.c | 58 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-memrchr.c | 57 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-memset.c | 73 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncasecmp.c | 59 ++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncmp.c | 78 ++++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncpy.c | 58 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-strnlen.c | 72 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wcsncmp.c | 20 +++++ sysdeps/x86_64/x32/tst-size_t-wmemcmp.c | 20 +++++ 30 files changed, 895 insertions(+), 72 deletions(-) create mode 100644 sysdeps/x86_64/x32/test-size_t.h create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memrchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memset.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncasecmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.24/master has been updated via fc4a25e8148f6aa1afd510a7d4dc57a4c597fb96 (commit) via b17dc7dec930698a31dd5be139dcc73a69efe6e8 (commit) via 2700f1d8b68f98cfa3ee52a070233506a0a2b977 (commit) via cfea023b20a40e959300dfbe9be28e5d235b59a3 (commit) via 6f9ce82c1ec1390aa5b21f8b30bde718c2ba98fb (commit) via 689ad968852ec44f5e6b6dd42cda382d08538246 (commit) via d057fef28c700258f35b122664609eedc0c2d1f9 (commit) via b085cb9bbf274f3fc05cc3f8ad92da946d5210bd (commit) from 22b7478755c07f4741db85d14fc2b57837078ca6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fc4a25e8148f6aa1afd510a7d4dc57a4c597fb96 commit fc4a25e8148f6aa1afd510a7d4dc57a4c597fb96 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:24:08 2019 -0800 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/strlen.S: Use RSI_LP for length. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strnlen. * sysdeps/x86_64/x32/tst-size_t-strnlen.c: New file. (cherry picked from commit 5165de69c0908e28a380cbd4bb054e55ea4abc95) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b17dc7dec930698a31dd5be139dcc73a69efe6e8 commit b17dc7dec930698a31dd5be139dcc73a69efe6e8 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:23:23 2019 -0800 x86-64 strncpy: 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 strncpy 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/strcpy-sse2-unaligned.S: Use RDX_LP for length. * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy. * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file. (cherry picked from commit c7c54f65b080affb87a1513dee449c8ad6143c8b) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2700f1d8b68f98cfa3ee52a070233506a0a2b977 commit 2700f1d8b68f98cfa3ee52a070233506a0a2b977 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:22:33 2019 -0800 x86-64 strncmp family: 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 the strncmp family 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/strcmp-sse42.S: Use RDX_LP for length. * sysdeps/x86_64/strcmp.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp, tst-size_t-strncmp and tst-size_t-wcsncmp. * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise. * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise. (cherry picked from commit ee915088a0231cd421054dbd8abab7aadf331153) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cfea023b20a40e959300dfbe9be28e5d235b59a3 commit cfea023b20a40e959300dfbe9be28e5d235b59a3 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:21:41 2019 -0800 x86-64 memset/wmemset: 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 memset/wmemset 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/memset-avx512-no-vzeroupper.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memset. * sysdeps/x86_64/x32/tst-size_t-memset.c: New file. (cherry picked from commit 82d0b4a4d76db554eb6757acb790fcea30b19965) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f9ce82c1ec1390aa5b21f8b30bde718c2ba98fb commit 6f9ce82c1ec1390aa5b21f8b30bde718c2ba98fb Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:54 2019 -0800 x86-64 memrchr: 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 memrchr 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/memrchr.S: Use RDX_LP for length. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr. * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file. (cherry picked from commit ecd8b842cf37ea112e59cd9085ff1f1b6e208ae0) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=689ad968852ec44f5e6b6dd42cda382d08538246 commit 689ad968852ec44f5e6b6dd42cda382d08538246 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:20:06 2019 -0800 x86-64 memcpy: 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 memcpy 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/memcpy-ssse3-back.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise. * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S: Likewise. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy. tst-size_t-wmemchr. * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file. (cherry picked from commit 231c56760c1e2ded21ad96bbb860b1f08c556c7a) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d057fef28c700258f35b122664609eedc0c2d1f9 commit d057fef28c700258f35b122664609eedc0c2d1f9 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:19:07 2019 -0800 x86-64 memcmp/wmemcmp: 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 memcmp/wmemcmp 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/memcmp-sse4.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and tst-size_t-wmemcmp. * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file. * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise. (cherry picked from commit b304fc201d2f6baf52ea790df8643e99772243cd) https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b085cb9bbf274f3fc05cc3f8ad92da946d5210bd commit b085cb9bbf274f3fc05cc3f8ad92da946d5210bd Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Feb 1 12:17:09 2019 -0800 x86-64 memchr/wmemchr: 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 memchr/wmemchr 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/memchr.S: Use RDX_LP for length. Clear the upper 32 bits of RDX register. * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr. * sysdeps/x86_64/x32/test-size_t.h: New file. * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. (cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 85 ++++++++++++++++++++ NEWS | 7 ++ sysdeps/x86_64/memchr.S | 7 +- sysdeps/x86_64/memrchr.S | 4 +- sysdeps/x86_64/multiarch/memcmp-sse4.S | 9 ++- sysdeps/x86_64/multiarch/memcmp-ssse3.S | 7 +- sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 17 +++-- sysdeps/x86_64/multiarch/memcpy-ssse3.S | 17 +++-- .../multiarch/memmove-avx512-no-vzeroupper.S | 16 +++-- .../x86_64/multiarch/memmove-vec-unaligned-erms.S | 46 ++++++----- .../x86_64/multiarch/memset-avx512-no-vzeroupper.S | 6 +- .../x86_64/multiarch/memset-vec-unaligned-erms.S | 26 ++++-- sysdeps/x86_64/multiarch/strcmp-sse42.S | 6 +- sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S | 4 +- sysdeps/x86_64/multiarch/strcpy-ssse3.S | 6 +- sysdeps/x86_64/strcmp.S | 6 +- sysdeps/x86_64/strlen.S | 10 +- sysdeps/x86_64/x32/Makefile | 10 +++ sysdeps/x86_64/x32/test-size_t.h | 35 ++++++++ sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcmp.c | 76 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-memcpy.c | 58 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-memrchr.c | 57 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-memset.c | 73 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncasecmp.c | 59 ++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncmp.c | 78 ++++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-strncpy.c | 58 +++++++++++++ sysdeps/x86_64/x32/tst-size_t-strnlen.c | 72 +++++++++++++++++ sysdeps/x86_64/x32/tst-size_t-wcsncmp.c | 20 +++++ sysdeps/x86_64/x32/tst-size_t-wmemcmp.c | 20 +++++ 30 files changed, 895 insertions(+), 72 deletions(-) create mode 100644 sysdeps/x86_64/x32/test-size_t.h create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memrchr.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-memset.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncasecmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strncpy.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-strnlen.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wcsncmp.c create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemcmp.c