From 0f58c9e88ebee636206b946b00ea52b47056b320 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 25 Feb 2019 14:25:01 -0800 Subject: [PATCH] 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. --- gdb/ChangeLog | 5 +++++ gdb/dwarf2read.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c2340e694c..879ad6a970 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-02-25 John Baldwin + + * dwarf2read.c (dwarf2_get_dwz_file): Reset dwz_bfd to nullptr + instead of releasing ownership. + 2019-02-25 Jordan Rupprecht * dwarf2read.c (open_and_init_dwp_file): Call diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2908a233fe..2d6cb353fb 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -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) -- 2.34.1