[PATCH 2/2] z/OS Support: Catching segfaults
David Lanzenörfer
leviathan@libresilicon.com
Sun Jan 26 11:38:00 GMT 2020
From: David Lanzendörfer <david.lanzendoerfer@o2s.ch>
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;
- if (table == NULL || string == NULL)
+ if (table == NULL || string == NULL || string[0]=='\0' )
return NULL;
ret = ((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_hash_entry *))
static void
undef_start_stop (struct bfd_link_hash_entry *h)
{
+ if (h==-1)
+ return;
if (h->ldscript_def)
return;
@@ -6586,6 +6588,8 @@ lang_init_startof_sizeof (void)
static void
set_start_stop (struct bfd_link_hash_entry *h)
{
+ if(h==-1)
+ return;
if (h->ldscript_def
|| h->type != bfd_link_hash_defined)
return;
--
2.25.0
More information about the Binutils
mailing list