]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* elflink.c (elf_link_add_object_symbols): Don't assume version
authorPaul Brook <paul@codesourcery.com>
Mon, 15 Nov 2004 12:39:01 +0000 (12:39 +0000)
committerPaul Brook <paul@codesourcery.com>
Mon, 15 Nov 2004 12:39:01 +0000 (12:39 +0000)
indices are consecutive.

bfd/ChangeLog
bfd/elflink.c

index 43d5e45ef8cb9169094452419d19a8eee332c81a..8c46cd64d94661d61e65285755acf9b7c4a239a3 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-15  Paul Brook  <paul@codesourcery.com>
+
+       * elflink.c (elf_link_add_object_symbols): Don't assume version
+       indices are consecutive.
+
 2004-11-14  Richard Sandiford  <rsandifo@redhat.com>
 
        * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Deal with
index e5c9d9f13af96f0221fa45592ab32316a917fc51..4f2d0967738178b438f450c38a201e441e48ec49 100644 (file)
@@ -3518,20 +3518,23 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 
                  if (isym->st_shndx != SHN_UNDEF)
                    {
-                     if (vernum > elf_tdata (abfd)->dynverdef_hdr.sh_info)
+                     if (vernum > elf_tdata (abfd)->cverdefs)
+                       verstr = NULL;
+                     else if (vernum > 1)
+                       verstr =
+                         elf_tdata (abfd)->verdef[vernum - 1].vd_nodename;
+                     else
+                       verstr = "";
+
+                     if (verstr == NULL)
                        {
                          (*_bfd_error_handler)
                            (_("%B: %s: invalid version %u (max %d)"),
                             abfd, name, vernum,
-                            elf_tdata (abfd)->dynverdef_hdr.sh_info);
+                            elf_tdata (abfd)->cverdefs);
                          bfd_set_error (bfd_error_bad_value);
                          goto error_free_vers;
                        }
-                     else if (vernum > 1)
-                       verstr =
-                         elf_tdata (abfd)->verdef[vernum - 1].vd_nodename;
-                     else
-                       verstr = "";
                    }
                  else
                    {