objdump, readelf: Report errors from CTF archive iteration
We were failing to report errors from ctf_archive_iter, which results in silent early termination if (for example) one CTF archive member in a .ctf section is corrupted and cannot be opened. Report the error in the usual fashion instead. binutils/ChangeLog 2020-11-20 Nick Alcock <nick.alcock@oracle.com> * objdump.c (dump_ctf): Report errors from ctf_archive_iter. * readelf.c (dump_section_as_ctf): Likewise.
This commit is contained in:
parent
ae41200ba8
commit
83d59285d5
@ -1,3 +1,8 @@
|
||||
2020-11-20 Nick Alcock <nick.alcock@oracle.com>
|
||||
|
||||
* objdump.c (dump_ctf): Report errors from ctf_archive_iter.
|
||||
* readelf.c (dump_section_as_ctf): Likewise.
|
||||
|
||||
2020-11-20 Nick Alcock <nick.alcock@oracle.com>
|
||||
|
||||
* objdump.c (dump_ctf): Use ctf_dict_open, not
|
||||
|
@ -4203,7 +4203,12 @@ dump_ctf (bfd *abfd, const char *sect_name, const char *parent_name)
|
||||
|
||||
printf (_("Contents of CTF section %s:\n"), sanitize_string (sect_name));
|
||||
|
||||
ctf_archive_iter (ctfa, dump_ctf_archive_member, parent);
|
||||
if ((err = ctf_archive_iter (ctfa, dump_ctf_archive_member, parent)) != 0)
|
||||
{
|
||||
dump_ctf_errs (NULL);
|
||||
non_fatal (_("CTF archive member open failure: %s"), ctf_errmsg (err));
|
||||
bfd_fatal (bfd_get_filename (abfd));
|
||||
}
|
||||
ctf_dict_close (parent);
|
||||
ctf_close (ctfa);
|
||||
ctf_close (parenta);
|
||||
|
@ -14787,8 +14787,12 @@ dump_section_as_ctf (Elf_Internal_Shdr * section, Filedata * filedata)
|
||||
printf (_("\nDump of CTF section '%s':\n"),
|
||||
printable_section_name (filedata, section));
|
||||
|
||||
if (ctf_archive_iter (ctfa, dump_ctf_archive_member, parent) != 0)
|
||||
ret = FALSE;
|
||||
if ((err = ctf_archive_iter (ctfa, dump_ctf_archive_member, parent)) != 0)
|
||||
{
|
||||
dump_ctf_errs (NULL);
|
||||
error (_("CTF member open failure: %s\n"), ctf_errmsg (err));
|
||||
ret = FALSE;
|
||||
}
|
||||
|
||||
fail:
|
||||
ctf_dict_close (parent);
|
||||
|
Loading…
Reference in New Issue
Block a user