From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17283 invoked by alias); 26 Jan 2020 11:38:11 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 17231 invoked by uid 89); 26 Jan 2020 11:38:11 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail.lanceville.cn Received: from mail.lanceville.cn (HELO mail.lanceville.cn) (62.192.20.132) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 26 Jan 2020 11:38:10 +0000 From: =?UTF-8?q?David=20Lanzen=C3=B6rfer?= To: binutils@sourceware.org Cc: =?UTF-8?q?David=20Lanzend=C3=B6rfer?= Subject: [PATCH 1/2] z/OS Support: Catching segfaults Date: Sun, 26 Jan 2020 11:38:00 -0000 Message-Id: <20200126113756.2009-2-leviathan@libresilicon.com> In-Reply-To: <20200126113756.2009-1-leviathan@libresilicon.com> References: <20200126113756.2009-1-leviathan@libresilicon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00365.txt.bz2 From: David Lanzend=C3=B6rfer When handling the z/OS object files in F4SA format certain fields are blank which caused segfaults in ld during linking. --- bfd/linker.c | 2 +- ld/ldlang.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bfd/linker.c b/bfd/linker.c index d8703179e5..9711951ea7 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -508,7 +508,7 @@ bfd_link_hash_lookup (struct bfd_link_hash_table *table, { struct bfd_link_hash_entry *ret; =20 - if (table =3D=3D NULL || string =3D=3D NULL) + if (table =3D=3D NULL || string =3D=3D NULL || string[0]=3D=3D'\0' ) return NULL; =20 ret =3D ((struct bfd_link_hash_entry *) diff --git a/ld/ldlang.c b/ld/ldlang.c index e100c0533c..5fbba7e723 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -6521,6 +6521,8 @@ foreach_start_stop (void (*func) (struct bfd_link_has= h_entry *)) static void undef_start_stop (struct bfd_link_hash_entry *h) { + if (h=3D=3D-1) + return; if (h->ldscript_def) return; =20 @@ -6586,6 +6588,8 @@ lang_init_startof_sizeof (void) static void set_start_stop (struct bfd_link_hash_entry *h) { + if(h=3D=3D-1) + return; if (h->ldscript_def || h->type !=3D bfd_link_hash_defined) return; --=20 2.25.0