From patchwork Thu Mar 1 11:38:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Roirand X-Patchwork-Id: 26127 Received: (qmail 42749 invoked by alias); 1 Mar 2018 11:38:57 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 40800 invoked by uid 89); 1 Mar 2018 11:38:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, NO_DNS_FOR_FROM autolearn=ham version=3.3.2 spammy=H*r:Unknown X-HELO: Xaviers-MacBook-Pro.local Received: from Unknown (HELO Xaviers-MacBook-Pro.local) (46.18.100.10) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 01 Mar 2018 11:38:54 +0000 Received: by Xaviers-MacBook-Pro.local (Postfix, from userid 501) id 088DB2001754E4; Thu, 1 Mar 2018 12:38:51 +0100 (CET) From: Xavier Roirand To: gdb-patches@sourceware.org Cc: brobecker@adacore.com, Tristan Gingold , tgingold@free.fr Subject: [RFA/Darwin v2] Avoid a crash when working on OSO without symbol. Date: Thu, 1 Mar 2018 12:38:48 +0100 Message-Id: <20180301113848.89042-1-roirand@adacore.com> X-IsSubscribed: yes From: Tristan Gingold When reading OSO file without symbol, macho_add_oso_symfile may crash when creating empty hash table. This patch fix this. gdb/ChangeLog: (Tristan Gingold ) * machoread.c (macho_add_oso_symfile): Handle case when OSO does not have symbol. --- gdb/ChangeLog | 6 ++++++ gdb/machoread.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 59265157b4..050376a696 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2018-02-27 Tristan Gingold + + Pushed by Xavier Roirand + * machoread.c (macho_add_oso_symfile): Handle case when + OSO does not have symbol. + 2018-02-28 Sergio Durigan Junior Simon Marchi diff --git a/gdb/machoread.c b/gdb/machoread.c index b270675d61..b00ef133a9 100644 --- a/gdb/machoread.c +++ b/gdb/machoread.c @@ -579,6 +579,11 @@ macho_add_oso_symfile (oso_el *oso, const gdb_bfd_ref_ptr &abfd, { struct macho_sym_hash_entry *ent; + /* Nothing to do if there is no symbol (and avoid a crash + while creating an empty hash table). */ + if (oso->nbr_syms == 0) + continue; + ent = (struct macho_sym_hash_entry *) bfd_hash_lookup (&table, sym->name, FALSE, FALSE); if (ent != NULL)