Fix BFD leak in dwarf2_get_dwz_file.

Previously if build_id_verify failed, dwz_bfd was cleared to NULL via
release(), but the BFD object was not destroyed.  Use reset() with
nullptr instead to delete the BFD.

gdb/ChangeLog:

	* dwarf2read.c (dwarf2_get_dwz_file): Reset dwz_bfd to nullptr
	instead of releasing ownership.
This commit is contained in:
John Baldwin 2019-02-25 14:25:01 -08:00
parent 0a0f4c0179
commit 0f58c9e88e
2 changed files with 6 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2019-02-25 John Baldwin <jhb@FreeBSD.org>
* dwarf2read.c (dwarf2_get_dwz_file): Reset dwz_bfd to nullptr
instead of releasing ownership.
2019-02-25 Jordan Rupprecht <rupprecht@google.com>
* dwarf2read.c (open_and_init_dwp_file): Call

View file

@ -2722,7 +2722,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
if (dwz_bfd != NULL)
{
if (!build_id_verify (dwz_bfd.get (), buildid_len, buildid))
dwz_bfd.release ();
dwz_bfd.reset (nullptr);
}
if (dwz_bfd == NULL)