From 48c72234ac9285b541431148186ffe9342ae96e3 Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Thu, 28 May 2020 22:08:26 +0200 Subject: [PATCH] Register temporary compiler stdout/stderr files as pending This avoids leaking them when a compilation is interrupted via e.g. Ctrl+C. --- src/ccache.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ccache.c b/src/ccache.c index de026bced..797e4323c 100644 --- a/src/ccache.c +++ b/src/ccache.c @@ -1471,8 +1471,11 @@ to_cache(struct args *args, struct hash *depend_mode_hash) if (!conf->depend_mode) { tmp_stdout = format("%s.tmp.stdout", cached_obj); tmp_stdout_fd = create_tmp_fd(&tmp_stdout); + add_pending_tmp_file(tmp_stdout); + tmp_stderr = format("%s.tmp.stderr", cached_obj); tmp_stderr_fd = create_tmp_fd(&tmp_stderr); + add_pending_tmp_file(tmp_stderr); status = execute(args->argv, tmp_stdout_fd, tmp_stderr_fd, &compiler_pid); args_pop(args, 3); @@ -1480,8 +1483,11 @@ to_cache(struct args *args, struct hash *depend_mode_hash) // The cached object path is not known yet, use temporary files. tmp_stdout = format("%s/tmp.stdout", temp_dir()); tmp_stdout_fd = create_tmp_fd(&tmp_stdout); + add_pending_tmp_file(tmp_stdout); + tmp_stderr = format("%s/tmp.stderr", temp_dir()); tmp_stderr_fd = create_tmp_fd(&tmp_stderr); + add_pending_tmp_file(tmp_stderr); // Use the original arguments (including dependency options) in depend // mode. -- 2.47.2