PR22232, NULL pointer dereference in load_specific_debug_section
PR 22232 PR 22230 * objdump.c (load_specific_debug_section): Introduce a temp to stop bfd_get_full_section_contents NULLing out section->start.
This commit is contained in:
parent
8cb1232a8c
commit
bfec0f11ea
@ -1,3 +1,10 @@
|
||||
2017-10-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 22232
|
||||
PR 22230
|
||||
* objdump.c (load_specific_debug_section): Introduce a temp to
|
||||
stop bfd_get_full_section_contents NULLing out section->start.
|
||||
|
||||
2017-10-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 22230
|
||||
|
@ -2465,6 +2465,7 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
|
||||
{
|
||||
struct dwarf_section *section = &debug_displays [debug].section;
|
||||
bfd *abfd = (bfd *) file;
|
||||
bfd_byte *contents;
|
||||
bfd_boolean ret;
|
||||
|
||||
/* If it is already loaded, do nothing. */
|
||||
@ -2475,10 +2476,10 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
|
||||
section->num_relocs = 0;
|
||||
section->address = bfd_get_section_vma (abfd, sec);
|
||||
section->size = bfd_get_section_size (sec);
|
||||
section->start = malloc (section->size + 1);
|
||||
section->start = contents = malloc (section->size + 1);
|
||||
section->user_data = sec;
|
||||
if (section->start == NULL
|
||||
|| !bfd_get_full_section_contents (abfd, sec, §ion->start))
|
||||
|| !bfd_get_full_section_contents (abfd, sec, &contents))
|
||||
{
|
||||
free_debug_section (debug);
|
||||
printf (_("\nCan't get contents for section '%s'.\n"),
|
||||
|
Loading…
Reference in New Issue
Block a user