From: Clément Chigot Date: Tue, 13 Apr 2021 06:32:55 +0000 (+0200) Subject: bfd: avoid infinite loop when static linking XCOFF X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d2f1139ef0c006f35210fac76cb034cfe8d57c2e;p=binutils-gdb.git bfd: avoid infinite loop when static linking XCOFF git commit b95a0a3177bc changed a "return FALSE" to "continue", and missed updating the while loop iterator. * xcofflink.c (xcoff_link_check_ar_symbols): Update esym earlier. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 28c5791282c..1603be8e954 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2021-04-13 Clément Chigot + + * xcofflink.c (xcoff_link_check_ar_symbols): Update esym earlier. + 2021-04-13 Nelson Chu * elfnn-riscv.c (riscv_version_mismatch): Do not report the warning diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 84048620b8e..f0e0fe7aafc 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -2349,6 +2349,7 @@ xcoff_link_check_ar_symbols (bfd *abfd, struct internal_syment sym; bfd_coff_swap_sym_in (abfd, (void *) esym, (void *) &sym); + esym += (sym.n_numaux + 1) * symesz; if (EXTERN_SYM_P (sym.n_sclass) && sym.n_scnum != N_UNDEF) { @@ -2382,8 +2383,6 @@ xcoff_link_check_ar_symbols (bfd *abfd, return true; } } - - esym += (sym.n_numaux + 1) * symesz; } /* We do not need this object file. */