From 56aac268892491465b042db51a0a3884403b92e3 Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Thu, 18 Aug 2022 21:15:39 +0200 Subject: [PATCH] fix: Don't crash in race between file read and cleanup As mentioned in discussion #1102. Regression in 02dac1f18084c0931aa6b8c1a07e9aedfadb5642. --- src/ccache.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ccache.cpp b/src/ccache.cpp index 7cb1aaf73..bf4bddc5f 100644 --- a/src/ccache.cpp +++ b/src/ccache.cpp @@ -1926,6 +1926,9 @@ from_cache(Context& ctx, FromCacheCallMode mode, const Digest& result_key) try { File file(*result_path, "rb"); + if (!file) { + throw core::Error("Failed to open {}: {}", strerror(errno)); + } core::FileReader file_reader(file.get()); core::CacheEntryReader cache_entry_reader(file_reader); Result::Reader result_reader(cache_entry_reader, *result_path); -- 2.47.2