mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
NULL dereference read in som_write_object_contents
objcopy copy_object may omit the call to bfd_copy_private_bfd_data for various conditions deemed non-fatal, in which case obj_som_exec_data will be NULL for the output file. * som.c (som_finish_writing): Don't dereference NULL obj_som_exec_data.
This commit is contained in:
@ -4211,7 +4211,7 @@ som_finish_writing (bfd *abfd)
|
|||||||
|
|
||||||
/* Setting of the system_id has to happen very late now that copying of
|
/* Setting of the system_id has to happen very late now that copying of
|
||||||
BFD private data happens *after* section contents are set. */
|
BFD private data happens *after* section contents are set. */
|
||||||
if (abfd->flags & (EXEC_P | DYNAMIC))
|
if ((abfd->flags & (EXEC_P | DYNAMIC)) && obj_som_exec_data (abfd))
|
||||||
obj_som_file_hdr (abfd)->system_id = obj_som_exec_data (abfd)->system_id;
|
obj_som_file_hdr (abfd)->system_id = obj_som_exec_data (abfd)->system_id;
|
||||||
else if (bfd_get_mach (abfd) == pa20)
|
else if (bfd_get_mach (abfd) == pa20)
|
||||||
obj_som_file_hdr (abfd)->system_id = CPU_PA_RISC2_0;
|
obj_som_file_hdr (abfd)->system_id = CPU_PA_RISC2_0;
|
||||||
@ -4242,6 +4242,7 @@ som_finish_writing (bfd *abfd)
|
|||||||
|
|
||||||
exec_header = obj_som_exec_hdr (abfd);
|
exec_header = obj_som_exec_hdr (abfd);
|
||||||
exec_header->exec_entry = bfd_get_start_address (abfd);
|
exec_header->exec_entry = bfd_get_start_address (abfd);
|
||||||
|
if (obj_som_exec_data (abfd))
|
||||||
exec_header->exec_flags = obj_som_exec_data (abfd)->exec_flags;
|
exec_header->exec_flags = obj_som_exec_data (abfd)->exec_flags;
|
||||||
|
|
||||||
/* Oh joys. Ram some of the BSS data into the DATA section
|
/* Oh joys. Ram some of the BSS data into the DATA section
|
||||||
|
Reference in New Issue
Block a user