x86-64 memcmp: Use unsigned Jcc instructions on size [BZ #24155]
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 4 Feb 2019 14:31:01 +0000 (06:31 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 4 Feb 2019 14:31:13 +0000 (06:31 -0800)
commit3f635fb43389b54f682fc9ed2acc0b2aaf4a923d
treeb157161b8ab3dd20e7304706c6cf8ecd6a91164b
parent2ab5741b8a96d02eb89e455b1971a19e7aef67bc
x86-64 memcmp: Use unsigned Jcc instructions on size [BZ #24155]

Since the size argument is unsigned. we should use unsigned Jcc
instructions, instead of signed, to check size.

Tested on x86-64 and x32, with and without --disable-multi-arch.

[BZ #24155]
CVE-2019-7309
* NEWS: Updated for CVE-2019-7309.
* sysdeps/x86_64/memcmp.S: Use RDX_LP for size.  Clear the
upper 32 bits of RDX register for x32.  Use unsigned Jcc
instructions, instead of signed.
* sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp-2.
* sysdeps/x86_64/x32/tst-size_t-memcmp-2.c: New test.
ChangeLog
NEWS
sysdeps/x86_64/memcmp.S
sysdeps/x86_64/x32/Makefile
sysdeps/x86_64/x32/tst-size_t-memcmp-2.c [new file with mode: 0644]