summaryrefslogtreecommitdiff
path: root/sysdeps/i386/memcmp.S
diff options
context:
space:
mode:
authorGreg McGary <greg@mcgary.org>2000-08-25 21:09:43 +0000
committerGreg McGary <greg@mcgary.org>2000-08-25 21:09:43 +0000
commit53c065086ba304d40b23f8539008757090ff6a58 (patch)
treeace9dab91c4826b8e5231d057a1d6dad42e27ffc /sysdeps/i386/memcmp.S
parentad7534c8f08c31f3e140a31e4099e7e0b5e193d2 (diff)
downloadglibc-53c065086ba304d40b23f8539008757090ff6a58.tar.gz
* sysdeps/i386/memchr.S: Check high bound against
chars actually scanned. * sysdeps/i386/memcmp.S: Likewise. * sysdeps/i386/stpncpy.S: Adjust high-bound check to account for pointers that lie one beyond end-of-buffer.
Diffstat (limited to 'sysdeps/i386/memcmp.S')
-rw-r--r--sysdeps/i386/memcmp.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
index 8d855b9d2a..d8b60d06c5 100644
--- a/sysdeps/i386/memcmp.S
+++ b/sysdeps/i386/memcmp.S
@@ -38,8 +38,8 @@ ENTRY (BP_SYM (memcmp))
movl BLK1(%esp), %esi
movl BLK2(%esp), %edi
movl LEN(%esp), %ecx
- CHECK_BOUNDS_BOTH_WIDE (%esi, BLK1(%esp), %ecx)
- CHECK_BOUNDS_BOTH_WIDE (%edi, BLK2(%esp), %ecx)
+ CHECK_BOUNDS_LOW (%esi, BLK1(%esp))
+ CHECK_BOUNDS_LOW (%edi, BLK2(%esp))
cld /* Set direction of comparison. */
@@ -62,7 +62,9 @@ ENTRY (BP_SYM (memcmp))
Note that the following operation does not change 0xffffffff. */
orb $1, %al /* Change 0 to 1. */
-L(1): popl %esi /* Restore registers. */
+L(1): CHECK_BOUNDS_HIGH (%esi, BLK1(%esp), jbe)
+ CHECK_BOUNDS_HIGH (%edi, BLK2(%esp), jbe)
+ popl %esi /* Restore registers. */
movl %edx, %edi
LEAVE