]> 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>
Thu, 18 Aug 2022 19:24:00 +0000 (21:24 +0200)
As mentioned in discussion #1102.

Regression in 02dac1f18084c0931aa6b8c1a07e9aedfadb5642.

src/ccache.cpp

index 7cb1aaf7346ca4ff4db7cb9599847820101a264d..bf4bddc5fefa38925a1a5ffb21149af76d11fe7d 100644 (file)
@@ -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);