From: Joel Rosdahl Date: Thu, 18 Aug 2022 19:15:39 +0000 (+0200) Subject: fix: Don't crash in race between file read and cleanup X-Git-Tag: v4.6.2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f719fd2e1fe44b32fc1cc6e00ccdaf83b0168b02;p=thirdparty%2Fccache.git fix: Don't crash in race between file read and cleanup As mentioned in discussion #1102. Regression in 02dac1f18084c0931aa6b8c1a07e9aedfadb5642. (cherry picked from commit 56aac268892491465b042db51a0a3884403b92e3) --- diff --git a/src/ccache.cpp b/src/ccache.cpp index 7f38ecd7c..9ba7478b4 100644 --- a/src/ccache.cpp +++ b/src/ccache.cpp @@ -1873,6 +1873,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);