fix source.c

find_and_open_source can leak a cleanup.

	* source.c (find_and_open_source): Call do_cleanups.
This commit is contained in:
Tom Tromey 2013-05-30 17:33:41 +00:00
parent 1fc3cf4a5a
commit 795d915c9b
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2013-05-30 Tom Tromey <tromey@redhat.com>
* source.c (find_and_open_source): Call do_cleanups.
2013-05-30 Tom Tromey <tromey@redhat.com>
* linux-thread-db.c (thread_db_load_search): Unconditionally

View File

@ -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;
}