From 69610cdb7c1e6e1fdb1dc06fb8b789722c54b79d Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 5 Nov 2002 01:08:18 +0000 Subject: [PATCH] * vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is non-NULL before dereferencing. --- bfd/ChangeLog | 5 +++++ bfd/vms-gsd.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 76158eaad..c2101974e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-11-05 Elias Athanasopoulos + + * vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is + non-NULL before dereferencing. + 2002-11-04 Kaz Kojima * vms.c (vms_object_p): Restore the start address when returning diff --git a/bfd/vms-gsd.c b/bfd/vms-gsd.c index 002412232..10fbb2d35 100644 --- a/bfd/vms-gsd.c +++ b/bfd/vms-gsd.c @@ -420,7 +420,7 @@ _bfd_vms_slurp_gsd (abfd, objtype) { bfd_set_error (bfd_error_no_memory); return -1; - } + } } } else @@ -661,13 +661,13 @@ _bfd_vms_slurp_gsd (abfd, objtype) } else /* symbol reference */ { - symbol->name = + symbol->name = _bfd_vms_save_counted_string (vms_rec+8); #if VMS_DEBUG vms_debug(4, "egsd sym ref #%d (%s, %04x=%s)\n", abfd->symcount, symbol->name, old_flags, flag2str(gsyflagdesc, old_flags)); #endif - symbol->section = bfd_make_section (abfd, BFD_UND_SECTION_NAME); + symbol->section = bfd_make_section (abfd, BFD_UND_SECTION_NAME); } symbol->flags = new_flags; @@ -901,7 +901,7 @@ _bfd_vms_write_gsd (abfd, objtype) unsigned long ca_psindx = 0; unsigned long psindx; - if (old_flags & BSF_FUNCTION) + if ((old_flags & BSF_FUNCTION) && symbol->udata.p != NULL) { code_address = ((asymbol *) (symbol->udata.p))->value; ca_psindx = ((asymbol *) (symbol->udata.p))->section->index; -- 2.11.4.GIT