aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-02-08 01:10:40 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-02-08 01:10:40 +0000
commitb2c9eff43c49d528c7ad3d0d91d03ccf0ae5ae0f (patch)
tree62894ea6e95d9a558d788eb9493110342c10bf73
parentf1d70dad5381352b3cad04b5ee0dd0efe2627683 (diff)
downloadglibc-b2c9eff43c49d528c7ad3d0d91d03ccf0ae5ae0f.zip
glibc-b2c9eff43c49d528c7ad3d0d91d03ccf0ae5ae0f.tar.gz
glibc-b2c9eff43c49d528c7ad3d0d91d03ccf0ae5ae0f.tar.bz2
Remove CHECK_BOUNDS_LOW and CHECK_BOUNDS_HIGH for C code.
-rw-r--r--ChangeLog9
-rw-r--r--string/strcpy.c7
-rw-r--r--sysdeps/generic/bp-checks.h12
3 files changed, 11 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 29a6d49..a192314 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-02-08 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #13550]
+ * sysdeps/generic/bp-checks.h (CHECK_BOUNDS_LOW): Remove all
+ definitions.
+ (CHECK_BOUNDS_HIGH): Likewise.
+ * string/strcpy.c: Do not include <bp-checks.h>.
+ (strcpy): Do not use CHECK_BOUNDS_LOW and CHECK_BOUNDS_HIGH.
+
2013-02-07 Roland McGrath <roland@hack.frob.com>
* nscd/nscd-client.h (__nscd_drop_map_ref):
diff --git a/string/strcpy.c b/string/strcpy.c
index a2bb8ef..9b713dc 100644
--- a/string/strcpy.c
+++ b/string/strcpy.c
@@ -18,7 +18,6 @@
#include <stddef.h>
#include <string.h>
#include <memcopy.h>
-#include <bp-checks.h>
#undef strcpy
@@ -29,8 +28,8 @@ strcpy (dest, src)
const char *src;
{
char c;
- char *__unbounded s = (char *__unbounded) CHECK_BOUNDS_LOW (src);
- const ptrdiff_t off = CHECK_BOUNDS_LOW (dest) - s - 1;
+ char *__unbounded s = (char *__unbounded) src;
+ const ptrdiff_t off = dest - s - 1;
size_t n;
do
@@ -41,8 +40,6 @@ strcpy (dest, src)
while (c != '\0');
n = s - src;
- (void) CHECK_BOUNDS_HIGH (src + n);
- (void) CHECK_BOUNDS_HIGH (dest + n);
return dest;
}
diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
index 13d00ca..618497c 100644
--- a/sysdeps/generic/bp-checks.h
+++ b/sysdeps/generic/bp-checks.h
@@ -24,16 +24,6 @@
# define BOUNDS_VIOLATED (__builtin_trap (), 0)
-/* Verify that pointer's value >= low. Return pointer value. */
-# define CHECK_BOUNDS_LOW(ARG) \
- (((__ptrvalue (ARG) < __ptrlow (ARG)) && BOUNDS_VIOLATED), \
- __ptrvalue (ARG))
-
-/* Verify that pointer's value < high. Return pointer value. */
-# define CHECK_BOUNDS_HIGH(ARG) \
- (((__ptrvalue (ARG) > __ptrhigh (ARG)) && BOUNDS_VIOLATED), \
- __ptrvalue (ARG))
-
# define _CHECK_N(ARG, N, COND) \
(((COND) \
&& (__ptrvalue (ARG) < __ptrlow (ARG) \
@@ -56,8 +46,6 @@
/* Do nothing if not compiling with -fbounded-pointers. */
# define BOUNDS_VIOLATED
-# define CHECK_BOUNDS_LOW(ARG) (ARG)
-# define CHECK_BOUNDS_HIGH(ARG) (ARG)
# define CHECK_1(ARG) (ARG)
# define CHECK_1_NULL_OK(ARG) (ARG)
# define CHECK_N(ARG, N) (ARG)