summaryrefslogtreecommitdiff
path: root/bfd/vms-gsd.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2002-11-05 01:08:18 +0000
committerAlan Modra <amodra@bigpond.net.au>2002-11-05 01:08:18 +0000
commit0cf796bd777027c6fa797018f0b73d866a104823 (patch)
tree13643343721d305c4ebe7b2e391ac8ef90625465 /bfd/vms-gsd.c
parentcb7785d52cc01292be87989ff636acbd791ee58e (diff)
downloadgdb-0cf796bd777027c6fa797018f0b73d866a104823.tar.gz
* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
non-NULL before dereferencing.
Diffstat (limited to 'bfd/vms-gsd.c')
-rw-r--r--bfd/vms-gsd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/bfd/vms-gsd.c b/bfd/vms-gsd.c
index 002412232dc..10fbb2d35c7 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;