]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
fix: Don't crash in race between file read and cleanup
authorJoel Rosdahl <joel@rosdahl.net>
Thu, 18 Aug 2022 19:15:39 +0000 (21:15 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Sat, 20 Aug 2022 12:28:58 +0000 (14:28 +0200)
As mentioned in discussion #1102.

Regression in 02dac1f18084c0931aa6b8c1a07e9aedfadb5642.

(cherry picked from commit 56aac268892491465b042db51a0a3884403b92e3)

src/ccache.cpp

index 7f38ecd7c33067e76115a9b5215ec3a252b41c04..9ba7478b47a2ecb9451109d0877dfb44437dfc28 100644 (file)
@@ -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);