solib_target_free_so memory leak
gdb/ChangeLog: 2020-01-03 Hannes Domani <ssbssa@yahoo.de> * solib-target.c (struct lm_info_target): Change offsets to be a unique_xmalloc_ptr. (solib_target_relocate_section_addresses): Update.
This commit is contained in:
parent
25057eb004
commit
44f81a7654
2 changed files with 11 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2020-01-03 Hannes Domani <ssbssa@yahoo.de>
|
||||||
|
|
||||||
|
* solib-target.c (struct lm_info_target):
|
||||||
|
Change offsets to be a unique_xmalloc_ptr.
|
||||||
|
(solib_target_relocate_section_addresses): Update.
|
||||||
|
|
||||||
2020-01-03 Hannes Domani <ssbssa@yahoo.de>
|
2020-01-03 Hannes Domani <ssbssa@yahoo.de>
|
||||||
|
|
||||||
* windows-nat.c (windows_clear_solib): Free so_list linked list.
|
* windows-nat.c (windows_clear_solib): Free so_list linked list.
|
||||||
|
|
|
@ -46,7 +46,7 @@ struct lm_info_target : public lm_info_base
|
||||||
|
|
||||||
/* The cached offsets for each section of this shared library,
|
/* The cached offsets for each section of this shared library,
|
||||||
determined from SEGMENT_BASES, or SECTION_BASES. */
|
determined from SEGMENT_BASES, or SECTION_BASES. */
|
||||||
section_offsets *offsets = NULL;
|
gdb::unique_xmalloc_ptr<section_offsets> offsets;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::vector<std::unique_ptr<lm_info_target>> lm_info_vector;
|
typedef std::vector<std::unique_ptr<lm_info_target>> lm_info_vector;
|
||||||
|
@ -309,8 +309,7 @@ solib_target_relocate_section_addresses (struct so_list *so,
|
||||||
{
|
{
|
||||||
int num_sections = gdb_bfd_count_sections (so->abfd);
|
int num_sections = gdb_bfd_count_sections (so->abfd);
|
||||||
|
|
||||||
li->offsets
|
li->offsets.reset ((struct section_offsets *)
|
||||||
= ((struct section_offsets *)
|
|
||||||
xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections)));
|
xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections)));
|
||||||
|
|
||||||
if (!li->section_bases.empty ())
|
if (!li->section_bases.empty ())
|
||||||
|
@ -377,7 +376,8 @@ Could not relocate shared library \"%s\": no segments"), so->so_name);
|
||||||
ULONGEST orig_delta;
|
ULONGEST orig_delta;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!symfile_map_offsets_to_segments (so->abfd, data, li->offsets,
|
if (!symfile_map_offsets_to_segments (so->abfd, data,
|
||||||
|
li->offsets.get (),
|
||||||
li->segment_bases.size (),
|
li->segment_bases.size (),
|
||||||
li->segment_bases.data ()))
|
li->segment_bases.data ()))
|
||||||
warning (_("\
|
warning (_("\
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue