From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 103458 invoked by alias); 18 Dec 2017 11:41:17 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 102648 invoked by uid 89); 18 Dec 2017 11:41:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 spammy=HTo:U*elfutils-devel X-Spam-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: gnu.wildebeest.org Received: from wildebeest.demon.nl (HELO gnu.wildebeest.org) (212.238.236.112) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 18 Dec 2017 11:41:15 +0000 Received: from tarox.wildebeest.org (tarox.wildebeest.org [172.31.17.39]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id D6D7C30278A3; Mon, 18 Dec 2017 12:41:12 +0100 (CET) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id 94C89402BA45; Mon, 18 Dec 2017 12:41:12 +0100 (CET) From: Mark Wielaard To: elfutils-devel@sourceware.org Cc: Mark Wielaard Subject: [PATCH] readelf: Try to continue after encountering bogus ELF Note data. Date: Mon, 18 Dec 2017 11:41:00 -0000 Message-Id: <1513597269-19193-1-git-send-email-mark@klomp.org> X-Mailer: git-send-email 1.8.3.1 X-Spam-Flag: NO X-IsSubscribed: yes X-SW-Source: 2017-q4/txt/msg00114.txt.bz2 There might be other sections or segments with ELF Notes that are readable. Also adjust error message depending on whether or not we actually got any data for the ELF Note segment or section. Signed-off-by: Mark Wielaard --- src/ChangeLog | 5 +++++ src/readelf.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8935022..994b1e1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2017-12-18 Mark Wielaard + + * readelf.c (handle_notes_data): Don't use EXIT_FAILURE in error. + Adjust error message depending on whether or not we got data. + 2017-12-07 Mark Wielaard * readelf.c (print_ops): Update data pointer and print arguments diff --git a/src/readelf.c b/src/readelf.c index ed21ef7..ca979e3 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -9611,9 +9611,9 @@ handle_notes_data (Ebl *ebl, const GElf_Ehdr *ehdr, return; bad_note: - error (EXIT_FAILURE, 0, - gettext ("cannot get content of note section: %s"), - elf_errmsg (-1)); + error (0, 0, + gettext ("cannot get content of note: %s"), + data != NULL ? "garbage data" : elf_errmsg (-1)); } static void -- 1.8.3.1