Bug 24097 (CVE-2019-6488) - Can't use 64-bit register for size_t in assembly codes for x32 (CVE-2019-6488)
Summary: Can't use 64-bit register for size_t in assembly codes for x32 (CVE-2019-6488)
Status: RESOLVED FIXED
Alias: CVE-2019-6488
Product: glibc
Classification: Unclassified
Component: string (show other bugs)
Version: 2.29
: P2 normal
Target Milestone: 2.29
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-16 12:12 UTC by H.J. Lu
Modified: 2019-02-02 14:39 UTC (History)
1 user (show)

See Also:
Host:
Target: x32
Build:
Last reconfirmed:
fweimer: security+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2019-01-16 12:12:02 UTC
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)
Comment 1 Florian Weimer 2019-01-21 11:01:44 UTC
Note: This bug only affects the x32 architecture, which is distinct from the i386/i686 architecture and the x86-64 architecture.
Comment 2 H.J. Lu 2019-01-22 03:52:25 UTC
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]
Comment 3 Sourceware Commits 2019-02-01 20:18:37 UTC
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
Comment 4 Sourceware Commits 2019-02-01 20:20:04 UTC
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%)
Comment 5 Sourceware Commits 2019-02-01 20:21:00 UTC
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%)
Comment 6 Sourceware Commits 2019-02-01 20:21:46 UTC
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%)
Comment 7 Sourceware Commits 2019-02-01 20:22:37 UTC
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%)
Comment 8 Sourceware Commits 2019-02-01 20:23:24 UTC
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
Comment 9 Sourceware Commits 2019-02-01 20:24:14 UTC
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%)
Comment 10 Sourceware Commits 2019-02-01 20:25:14 UTC
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%)
Comment 11 Sourceware Commits 2019-02-01 22:52:40 UTC
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
Comment 12 Sourceware Commits 2019-02-02 00:01:35 UTC
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
Comment 13 Sourceware Commits 2019-02-02 14:05:16 UTC
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
Comment 14 Sourceware Commits 2019-02-02 14:39:12 UTC
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