summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>1999-10-18 12:45:21 +0000
committerAndrew Haley <aph@redhat.com>1999-10-18 12:45:21 +0000
commita67a87777490844b90870b030a0669e752427ad9 (patch)
tree1e2c563da66a7118eee3712a0cfe8b7f7e17c16a
parent68f8e33e592aaefb4c7f49483195251df7864844 (diff)
downloadbinutils-gdb-a67a87777490844b90870b030a0669e752427ad9.tar.gz
1999-10-15 Andrew Haley <aph@cygnus.com>
* dwarf1.c (parse_die): Fail to parse a die if its length is zero.
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/dwarf1.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 134f41d53e9..640ec8d621c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+1999-10-15 Andrew Haley <aph@cygnus.com>
+
+ * dwarf1.c (parse_die): Fail to parse a die if its length is zero.
+
Sun Oct 17 17:19:00 1999 Jeffrey A Law (law@cygnus.com)
* libhppa.h (bfd_hppa_insn2fmt): Change to return an int.
diff --git a/bfd/dwarf1.c b/bfd/dwarf1.c
index 903bfc38ab5..da184cc7058 100644
--- a/bfd/dwarf1.c
+++ b/bfd/dwarf1.c
@@ -186,6 +186,8 @@ parse_die (abfd, aDieInfo, aDiePtr)
/* First comes the length. */
aDieInfo->length = bfd_get_32 (abfd, xptr);
xptr += 4;
+ if (aDieInfo->length == 0)
+ return false;
if (aDieInfo->length < 6)
{
/* Just padding bytes. */