Your infinite-readelf patch caused regressions

Nicholas Clifton nickc@redhat.com
Thu Mar 20 13:18:00 GMT 2014


Hi Hans-Peter,

> Not sure why the infinite-loop test triggers.

It is because those particular tests are running "readelf -a", so the 
version information in the binaries is being dumped.

> FAIL: ld-cris/pcrelcp-1
> FAIL: ld-cris/weakref3
> FAIL: ld-cris/weakref4

Sorry about that.  It was a silly off-by-one error.  Fixed with the 
patch below.

Cheers
   Nick

binutils/ChangeLog
2014-03-20  Nick Clifton  <nickc@redhat.com>

	* readelf.c (process_version_sections): Fix off-by-one error in
	previous delta.

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 79137e3..c757a63 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -8971,7 +8971,7 @@ process_version_sections (FILE * file)
                 if (j < ent.vn_cnt)
                   warn (_("Missing Version Needs auxillary 
information\n"));

-               if (ent.vn_next == 0 && cnt < section->sh_info)
+               if (ent.vn_next == 0 && cnt < section->sh_info - 1)
                   {
                     warn (_("Corrupt Version Needs structure - offset 
to next structure is zero with entries s
till left to be processed\n"));
                     cnt = section->sh_info;



More information about the Binutils mailing list