From: H.J. Lu Date: Thu, 10 May 2001 22:59:29 +0000 (+0000) Subject: 2001-05-10 H.J. Lu X-Git-Tag: dberlin-typesystem-branchpoint~570 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=689effed707a39631d63921f38a03f670d6ce380;p=thirdparty%2Fbinutils-gdb.git 2001-05-10 H.J. Lu * linker.c (_bfd_generic_link_add_one_symbol): Check loop on indirect symbols. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6703eadd256..29d153c0b29 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2001-05-10 H.J. Lu + + * linker.c (_bfd_generic_link_add_one_symbol): Check loop on + indirect symbols. + 2001-05-09 H.J. Lu * elflink.h (elf_link_add_object_symbols): Fix a typo. Allocate diff --git a/bfd/linker.c b/bfd/linker.c index 3efaf665d7f..08772894890 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -1801,6 +1801,15 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, copy, false); if (inh == (struct bfd_link_hash_entry *) NULL) return false; + if (inh->type == bfd_link_hash_indirect + && inh->u.i.link == h) + { + (*_bfd_error_handler) + (_("%s: indirect symbol `%s' to `%s' is a loop"), + bfd_get_filename (abfd), name, string); + bfd_set_error (bfd_error_invalid_operation); + return false; + } if (inh->type == bfd_link_hash_new) { inh->type = bfd_link_hash_undefined;