summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2014-12-26 16:12:52 +0100
committerMark Wielaard <mjw@redhat.com>2015-01-12 22:04:44 +0100
commit0b799ad9822f4866aaf1eb34564681e83bdaf9f1 (patch)
treea939b5982cf0bcb48630e4f5dd849db17b2d4285
parent68588d628a464698031323d8eb42a961c0846ba9 (diff)
downloadelfutils-0b799ad9822f4866aaf1eb34564681e83bdaf9f1.tar.gz
nm: Stop processing ar members on first invalid offset.
Otherwise we will keep looping on that same invalid entry. https://bugzilla.redhat.com/show_bug.cgi?id=1170810 Reported-by: Alexander Cherepanov <cherepan@mccme.ru> Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r--src/ChangeLog4
-rw-r--r--src/nm.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7203dd95..18a038d4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-26 Mark Wielaard <mjw@redhat.com>
+
+ * nm.c (handle_ar): Break on arsym with invalid offset.
+
2014-12-20 Mark Wielaard <mjw@redhat.com>
* readelf.c (print_debug_macinfo_section): Mark cus sentinel files
diff --git a/src/nm.c b/src/nm.c
index 4f2e0e78..6a9f8e1f 100644
--- a/src/nm.c
+++ b/src/nm.c
@@ -468,7 +468,7 @@ handle_ar (int fd, Elf *elf, const char *prefix, const char *fname,
{
error (0, 0, gettext ("invalid offset %zu for symbol %s"),
arsym->as_off, arsym->as_name);
- continue;
+ break;
}
printf (gettext ("%s in %s\n"), arsym->as_name, arhdr->ar_name);