This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed, PATCH] Check file size before getting section contents

Hi H.J.,

This patch caused many regressions in GDB's testsuite:

x86 buildslaves haven't caught up with the patch yet, but I
see the same thing locally, on my x86-64 machine.  (git bisect
pointed me here.)

Here's quick way to run only a few of the tests that are now failing:

 $ make check TESTS="gdb.base/break-interp.exp gdb.base/corefile.exp gdb.base/solib-search.exp gdb.reverse/sigall-precsave.exp"

Any idea what's going on?

BTW, this looks very suspicious:

 @@ -867,7 +876,13 @@ _bfd_generic_get_section_contents_in_window
      sz = section->rawsize;
      sz = section->size;
 +  filesz = bfd_get_file_size (abfd);
 +    {
 +      /* This should never happen.  */
 +      abort ();
 +    }

... because that abort is unconditional.  Did you intend
to guard it with:
   if (filesz < 0)
like in _bfd_generic_get_section_contents?

Pedro Alves

On 06/26/2017 05:31 PM, H.J. Lu wrote:
> Don't check the section size in bfd_get_full_section_contents since
> the size of a decompressed section may be larger than the file size.
> Instead, check file size in _bfd_generic_get_section_contents.
> 	PR binutils/21665
> 	* compress.c (bfd_get_full_section_contents): Don't check the
> 	file size here.
> 	* libbfd.c (_bfd_generic_get_section_contents): Check for and
> 	reject a section whoes size + offset is greater than the size
> 	of the entire file.
> 	(_bfd_generic_get_section_contents_in_window): Likewise.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]