From cd5a152cebb201e98f3dbeca510aa39e838a1f62 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 21 Feb 2019 10:40:49 -0700 Subject: Fix BFD leak in solib-darwin.c commit 192b62ce0b4bb5c61188f570e127a26d2c32f716 ("Use class to manage BFD reference counts") changed darwin_get_dyld_bfd to use: + dyld_bfd.release (); rather than - do_cleanups (cleanup); However, using release here leaks the BFD. Instead, simply assigning "sub" to "dyld_bfd" achieves what was meant. gdb/ChangeLog 2019-02-25 Tom Tromey * solib-darwin.c (darwin_get_dyld_bfd): Don't release dyld_bfd. --- gdb/ChangeLog | 4 ++++ gdb/solib-darwin.c | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9a57402..118f175 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2019-02-25 Tom Tromey + + * solib-darwin.c (darwin_get_dyld_bfd): Don't release dyld_bfd. + 2019-02-23 Sergio Durigan Junior * gcore.in: Add '--readnever' option when invoking GDB. diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c index d306060..b976b79 100644 --- a/gdb/solib-darwin.c +++ b/gdb/solib-darwin.c @@ -452,10 +452,7 @@ darwin_get_dyld_bfd () gdb_bfd_ref_ptr sub (gdb_bfd_mach_o_fat_extract (dyld_bfd.get (), bfd_object, gdbarch_bfd_arch_info (target_gdbarch ()))); - if (sub != NULL) - dyld_bfd = sub; - else - dyld_bfd.release (); + dyld_bfd = sub; } return dyld_bfd; } -- cgit v1.1