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

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