* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is

non-NULL before dereferencing.
This commit is contained in:
Alan Modra 2002-11-05 01:08:18 +00:00
parent 226acd2e46
commit 89117aabb3
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2002-11-05 Elias Athanasopoulos <eathan@otenet.gr>
* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
non-NULL before dereferencing.
2002-11-04 Kaz Kojima <kkojima@rr.iij4u.or.jp> 2002-11-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* vms.c (vms_object_p): Restore the start address when returning * vms.c (vms_object_p): Restore the start address when returning

View File

@ -420,7 +420,7 @@ _bfd_vms_slurp_gsd (abfd, objtype)
{ {
bfd_set_error (bfd_error_no_memory); bfd_set_error (bfd_error_no_memory);
return -1; return -1;
} }
} }
} }
else else
@ -661,13 +661,13 @@ _bfd_vms_slurp_gsd (abfd, objtype)
} }
else /* symbol reference */ else /* symbol reference */
{ {
symbol->name = symbol->name =
_bfd_vms_save_counted_string (vms_rec+8); _bfd_vms_save_counted_string (vms_rec+8);
#if VMS_DEBUG #if VMS_DEBUG
vms_debug(4, "egsd sym ref #%d (%s, %04x=%s)\n", abfd->symcount, vms_debug(4, "egsd sym ref #%d (%s, %04x=%s)\n", abfd->symcount,
symbol->name, old_flags, flag2str(gsyflagdesc, old_flags)); symbol->name, old_flags, flag2str(gsyflagdesc, old_flags));
#endif #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; symbol->flags = new_flags;
@ -901,7 +901,7 @@ _bfd_vms_write_gsd (abfd, objtype)
unsigned long ca_psindx = 0; unsigned long ca_psindx = 0;
unsigned long psindx; unsigned long psindx;
if (old_flags & BSF_FUNCTION) if ((old_flags & BSF_FUNCTION) && symbol->udata.p != NULL)
{ {
code_address = ((asymbol *) (symbol->udata.p))->value; code_address = ((asymbol *) (symbol->udata.p))->value;
ca_psindx = ((asymbol *) (symbol->udata.p))->section->index; ca_psindx = ((asymbol *) (symbol->udata.p))->section->index;