mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 07:08:01 +08:00
Prevent segfault in GDB when searching for architecture matches.
* format.c (struct bfd_preserve): New "build_id" field. (bfd_preserve_save): Save "build_id". (bfd_preserve_restore): Restore "build_id".
This commit is contained in:

committed by
Nick Clifton

parent
32348c581b
commit
5d9bbb73c1
@ -1,3 +1,9 @@
|
|||||||
|
2016-09-14 Bhushan Attarde <bhushan.attarde@imgtec.com>
|
||||||
|
|
||||||
|
* format.c (struct bfd_preserve): New "build_id" field.
|
||||||
|
(bfd_preserve_save): Save "build_id".
|
||||||
|
(bfd_preserve_restore): Restore "build_id".
|
||||||
|
|
||||||
2016-09-06 H.J. Lu <hongjiu.lu@intel.com>
|
2016-09-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/20550
|
PR ld/20550
|
||||||
|
@ -104,6 +104,7 @@ struct bfd_preserve
|
|||||||
struct bfd_section *section_last;
|
struct bfd_section *section_last;
|
||||||
unsigned int section_count;
|
unsigned int section_count;
|
||||||
struct bfd_hash_table section_htab;
|
struct bfd_hash_table section_htab;
|
||||||
|
const struct bfd_build_id *build_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* When testing an object for compatibility with a particular target
|
/* When testing an object for compatibility with a particular target
|
||||||
@ -126,6 +127,7 @@ bfd_preserve_save (bfd *abfd, struct bfd_preserve *preserve)
|
|||||||
preserve->section_count = abfd->section_count;
|
preserve->section_count = abfd->section_count;
|
||||||
preserve->section_htab = abfd->section_htab;
|
preserve->section_htab = abfd->section_htab;
|
||||||
preserve->marker = bfd_alloc (abfd, 1);
|
preserve->marker = bfd_alloc (abfd, 1);
|
||||||
|
preserve->build_id = abfd->build_id;
|
||||||
if (preserve->marker == NULL)
|
if (preserve->marker == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@ -158,6 +160,7 @@ bfd_preserve_restore (bfd *abfd, struct bfd_preserve *preserve)
|
|||||||
abfd->sections = preserve->sections;
|
abfd->sections = preserve->sections;
|
||||||
abfd->section_last = preserve->section_last;
|
abfd->section_last = preserve->section_last;
|
||||||
abfd->section_count = preserve->section_count;
|
abfd->section_count = preserve->section_count;
|
||||||
|
abfd->build_id = preserve->build_id;
|
||||||
|
|
||||||
/* bfd_release frees all memory more recently bfd_alloc'd than
|
/* bfd_release frees all memory more recently bfd_alloc'd than
|
||||||
its arg, as well as its arg. */
|
its arg, as well as its arg. */
|
||||||
|
Reference in New Issue
Block a user