summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-11-11 16:15:47 +0000
committerNick Clifton <nickc@redhat.com>2014-11-11 16:15:47 +0000
commit541a3cbda9de8ae8888906cfe14887c394a3f772 (patch)
treed0b25201e4436fcd704c014f2e2a4126531f7a11
parent201159ecec7e17600df4153e5d4e7a145f0c7cfe (diff)
downloadbinutils-gdb-541a3cbda9de8ae8888906cfe14887c394a3f772.tar.gz
Prevent a buffer overrun whilst displaying corrupt ARM tags.
PR binutils/17531 * readelf.c (display_arm_attribute): Avoid reading off the end of the buffer when processing a Tag_nodefaults.
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 2e71311f49a..f7a58a88a0b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-11 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/17531
+ * readelf.c (display_arm_attribute): Avoid reading off the end of
+ the buffer when processing a Tag_nodefaults.
+
2014-11-10 Nick Clifton <nickc@redhat.com>
PR binutils/17531
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 91d55815658..083096090e9 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12054,7 +12054,9 @@ display_arm_attribute (unsigned char * p,
break;
case 64: /* Tag_nodefaults. */
- p++;
+ /* PR 17531: file: 001-505008-0.01. */
+ if (p < end)
+ p++;
printf (_("True\n"));
break;