[patch] sanity check bfd_is_section_compressed header
Cary Coutant
ccoutant@google.com
Thu Jun 6 06:25:00 GMT 2013
>> Hmmm, the linker shouldn't even be looking for "ZLIB" unless the
>> section name is ".zdebug_str" (or, for the new gABI feature, unless
>> the SHF_COMPRESSED flag is set). Wouldn't that be a better check?
>
> I see no reference to SHF_COMPRESSED in the bfd sources, so I can't
> check for it.
Yeah, I don't think it's officially in the gABI yet, but it's on the way.
> It seems intentional that it supports both .debug and .zdebug:
>
> 2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
> Cary Coutant <ccoutant@google.com>
>
> * elf.c (_bfd_elf_make_section_from_shdr): Call
> bfd_is_section_compressed to check if a DWARF debug section is
> compressed. Call bfd_init_section_compress_status or
> bfd_init_section_decompress_status if needed.
>
> /* Compress/decompress DWARF debug sections with names: .debug_* and
> .zdebug_*, after the section flags is set. */
> if ((flags & SEC_DEBUGGING)
> && ((name[1] == 'd' && name[6] == '_')
> || (name[1] == 'z' && name[7] == '_')))
> {
Heh. I guess it's my fault, then, but I think it's clearly wrong to
try to decompress a .debug_* section, especially given that its
contents might legitimately begin with the magic string "ZLIB". I
think we were just trying to be tolerant there.
-cary
More information about the Binutils
mailing list