aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/stpcpy.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/stpcpy.S')
-rw-r--r--sysdeps/i386/stpcpy.S11
1 files changed, 8 insertions, 3 deletions
diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
index f8267c7d1e..f66097f3b9 100644
--- a/sysdeps/i386/stpcpy.S
+++ b/sysdeps/i386/stpcpy.S
@@ -24,6 +24,7 @@
#include <sysdep.h>
#include "asm-syntax.h"
+#include "bp-sym.h"
#include "bp-asm.h"
#define PARMS LINKAGE /* no space for saved regs */
@@ -32,11 +33,13 @@
#define SRC DEST+PTR_SIZE
.text
-ENTRY (__stpcpy)
+ENTRY (BP_SYM (__stpcpy))
ENTER
movl DEST(%esp), %eax
movl SRC(%esp), %ecx
+ CHECK_BOUNDS_LOW (%eax, DEST(%esp))
+ CHECK_BOUNDS_LOW (%ecx, SRC(%esp))
subl %eax, %ecx /* magic: reduce number of loop variants
to one using addressing mode */
@@ -82,9 +85,11 @@ L(1): addl $4, %eax /* increment loop counter */
L(4): incl %eax
L(3): incl %eax
L(2):
+ CHECK_BOUNDS_HIGH (%eax, DEST(%esp), jb)
+ RETURN_BOUNDED_POINTER (DEST(%esp))
LEAVE
RET_PTR
-END (__stpcpy)
+END (BP_SYM (__stpcpy))
-weak_alias (__stpcpy, stpcpy)
+weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy))