From 89f17f72d353f89cbf78d9a8bfcaa1d445519f73 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 2 May 2022 20:13:56 +0100 Subject: [PATCH] [Minor] Fix empty cache filename case --- src/libserver/symcache/symcache_impl.cxx | 4 ++++ src/libutil/cxx/locked_file.cxx | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/libserver/symcache/symcache_impl.cxx b/src/libserver/symcache/symcache_impl.cxx index 0878ae32b5..6b1802d964 100644 --- a/src/libserver/symcache/symcache_impl.cxx +++ b/src/libserver/symcache/symcache_impl.cxx @@ -258,6 +258,10 @@ static constexpr auto round_to_hundreds(T x) bool symcache::save_items() const { + if (cfg->cache_filename == nullptr) { + return false; + } + auto file_sink = util::raii_file_sink::create(cfg->cache_filename, O_WRONLY | O_TRUNC, 00644); diff --git a/src/libutil/cxx/locked_file.cxx b/src/libutil/cxx/locked_file.cxx index 13406c6cfc..6abc4a1b0d 100644 --- a/src/libutil/cxx/locked_file.cxx +++ b/src/libutil/cxx/locked_file.cxx @@ -176,6 +176,10 @@ raii_mmaped_locked_file::raii_mmaped_locked_file(raii_mmaped_locked_file &&other auto raii_file_sink::create(const char *fname, int flags, int perms, const char *suffix) -> tl::expected { + if (!fname || !suffix) { + return tl::make_unexpected("cannot create file sink: bad input arguments"); + } + auto tmp_fname = fmt::format("{}.{}", fname, suffix); auto file = raii_locked_file::create(tmp_fname.c_str(), flags, perms); -- 2.47.3