This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 31/40] fix source.c


find_and_open_source can leak a cleanup.

	* source.c (find_and_open_source): Call do_cleanups.
---
 gdb/source.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gdb/source.c b/gdb/source.c
index 161a6c4..71b6d53 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -985,6 +985,7 @@ find_and_open_source (const char *filename,
   char *path = source_path;
   const char *p;
   int result;
+  struct cleanup *cleanup;
 
   /* Quick way out if we already know its full name.  */
 
@@ -1016,6 +1017,8 @@ find_and_open_source (const char *filename,
       *fullname = NULL;
     }
 
+  cleanup = make_cleanup (null_cleanup, NULL);
+
   if (dirname != NULL)
     {
       /* If necessary, rewrite the compilation directory name according
@@ -1072,6 +1075,7 @@ find_and_open_source (const char *filename,
 	result = openp (path, OPF_SEARCH_IN_PATH, p, OPEN_MODE, fullname);
     }
 
+  do_cleanups (cleanup);
   return result;
 }
 
-- 
1.8.1.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]