From e35ac9bf5c3e411f6c41cceb4651402674797da0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 30 May 2013 17:31:00 +0000 Subject: fix in solib-aix.c solib_aix_bfd_open has an early "return" that doesn't run cleanups. This fixes the problem by dropping the null_cleanup and using a later cleanup as the master cleanup for the function. * solib-aix.c (solib_aix_bfd_open): Don't use a null cleanup for 'cleanup'; instead use a later one. --- gdb/solib-aix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gdb/solib-aix.c') diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c index 5d15e7045af..efc0dc5e259 100644 --- a/gdb/solib-aix.c +++ b/gdb/solib-aix.c @@ -647,7 +647,7 @@ solib_aix_bfd_open (char *pathname) int filename_len; char *member_name; bfd *archive_bfd, *object_bfd; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); + struct cleanup *cleanup; if (pathname[path_len - 1] != ')') return solib_bfd_open (pathname); @@ -665,7 +665,7 @@ solib_aix_bfd_open (char *pathname) filename_len = sep - pathname; filename = xstrprintf ("%.*s", filename_len, pathname); - make_cleanup (xfree, filename); + cleanup = make_cleanup (xfree, filename); member_name = xstrprintf ("%.*s", path_len - filename_len - 2, sep + 1); make_cleanup (xfree, member_name); -- cgit v1.2.1