* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
authorAlan Modra <amodra@gmail.com>
Tue, 5 Nov 2002 01:08:18 +0000 (01:08 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 5 Nov 2002 01:08:18 +0000 (01:08 +0000)
non-NULL before dereferencing.

bfd/ChangeLog
bfd/vms-gsd.c

index 76158eaadabdd3fa034d1f7628ef997221b65fe5..c2101974e1375706437a8627158e6a268598c624 100644 (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>
 
        * vms.c (vms_object_p): Restore the start address when returning
index 002412232dc2b1c64f37ef73875c478ccb4d2ae3..10fbb2d35c75bfc8ae0b4c4035133d3c7a426ba1 100644 (file)
@@ -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;
This page took 0.038833 seconds and 4 git commands to generate.