[RFC] Fix BFD leak in solib-darwin.c

Tom Tromey
2019-02-22T16:36:53Z

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 I believe reset
should be used instead.

I can't readily test this, so please take a look and let me know what
you think.

gdb/ChangeLog
2019-02-22 Tom Tromey <tromey@adacore.com>

* solib-darwin.c (darwin_get_dyld_bfd): Use reset, not release.
---
gdb/ChangeLog | 4 ++++
gdb/solib-darwin.c | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index d3060604bad..da410ad4660 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -455,7 +455,7 @@ darwin_get_dyld_bfd ()
if (sub != NULL)
dyld_bfd = sub;
else
- dyld_bfd.release ();
+ dyld_bfd.reset (nullptr);
}
return dyld_bfd;
}
--
2.20.1