mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
PR 34353 objcopy: null-pointer dereference bfd/section.c:1433
objcopy --update-section specifying a SHT_GROUP section hits a case where output_section is NULL. * objcopy.c (copy_object): Don't segfault when update_sections output_section is NULL. Remove the "not found" part of existing error so this message can be used. * testsuite/binutils-all/update-section.exp: Update to suit.
This commit is contained in:
parent
9cd1935201
commit
64ca9aa242
2 changed files with 4 additions and 4 deletions
|
|
@ -3072,13 +3072,13 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
|
|||
pupdate = pupdate->next)
|
||||
{
|
||||
pupdate->section = bfd_get_section_by_name (ibfd, pupdate->name);
|
||||
if (pupdate->section == NULL)
|
||||
if (pupdate->section == NULL
|
||||
|| (osec = pupdate->section->output_section) == NULL)
|
||||
{
|
||||
non_fatal (_("error: %s not found, can't be updated"), pupdate->name);
|
||||
non_fatal (_("error: %s can't be updated"), pupdate->name);
|
||||
return false;
|
||||
}
|
||||
|
||||
osec = pupdate->section->output_section;
|
||||
if (!bfd_set_section_size (osec, pupdate->size))
|
||||
{
|
||||
bfd_nonfatal_message (NULL, obfd, osec, NULL);
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ do_compare update-1.o update-4.o
|
|||
# Check that --update-section on an unknown section will fail.
|
||||
if { ![do_objcopy update-2.o \
|
||||
"--update-section .bar=tmpdir/dumped-contents" \
|
||||
"error: .bar not found, can't be updated"] } then {
|
||||
"error: .bar can't be updated"] } then {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue