From: Paul Brook Date: Mon, 15 Nov 2004 12:39:01 +0000 (+0000) Subject: * elflink.c (elf_link_add_object_symbols): Don't assume version X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=19c525f8fcfa4010da224a11819ad373a591f39b;p=pf3gnuchains%2Fpf3gnuchains3x.git * elflink.c (elf_link_add_object_symbols): Don't assume version indices are consecutive. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 43d5e45ef8..8c46cd64d9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-11-15 Paul Brook + + * elflink.c (elf_link_add_object_symbols): Don't assume version + indices are consecutive. + 2004-11-14 Richard Sandiford * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Deal with diff --git a/bfd/elflink.c b/bfd/elflink.c index e5c9d9f13a..4f2d096773 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -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 {