Fix thinko in recent update to bfd_section_from_shdr.
[deliverable/binutils-gdb.git] / bfd / xcofflink.c
index ff4b483703254ace62b2009dc45c6ab1a9849873..503b6ab93f1ed2fc760556a9da09008b3a7ea3a8 100644 (file)
@@ -1000,7 +1000,7 @@ xcoff_link_add_dynamic_symbols (bfd *abfd, struct bfd_link_info *info)
 
   if (abfd->my_archive == NULL || bfd_is_thin_archive (abfd->my_archive))
     {
-      if (!bfd_xcoff_split_import_path (abfd, abfd->filename,
+      if (!bfd_xcoff_split_import_path (abfd, bfd_get_filename (abfd),
                                        &n->path, &n->file))
        return FALSE;
       n->member = "";
@@ -1013,7 +1013,8 @@ xcoff_link_add_dynamic_symbols (bfd *abfd, struct bfd_link_info *info)
       if (!archive_info->impfile)
        {
          if (!bfd_xcoff_split_import_path (archive_info->archive,
-                                           archive_info->archive->filename,
+                                           bfd_get_filename (archive_info
+                                                             ->archive),
                                            &archive_info->imppath,
                                            &archive_info->impfile))
            return FALSE;
@@ -1317,14 +1318,17 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
        {
          bfd_byte *linenos;
 
-         amt = linesz * o->lineno_count;
-         linenos = bfd_malloc (amt);
+         if (bfd_seek (abfd, o->line_filepos, SEEK_SET) != 0)
+           goto error_return;
+         if (_bfd_mul_overflow (linesz, o->lineno_count, &amt))
+           {
+             bfd_set_error (bfd_error_file_too_big);
+             goto error_return;
+           }
+         linenos = _bfd_malloc_and_read (abfd, amt, amt);
          if (linenos == NULL)
            goto error_return;
          reloc_info[o->target_index].linenos = linenos;
-         if (bfd_seek (abfd, o->line_filepos, SEEK_SET) != 0
-             || bfd_bread (linenos, amt, abfd) != amt)
-           goto error_return;
        }
     }
 
This page took 0.023834 seconds and 4 git commands to generate.