diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-05-02 20:13:56 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-05-02 20:13:56 +0100 |
commit | 89f17f72d353f89cbf78d9a8bfcaa1d445519f73 (patch) | |
tree | 714bcd04a27624c8bdbb48b379fba510092f06ef | |
parent | 1e294ebb7bfcb43e3cecc89f6281366cd191b59d (diff) | |
download | rspamd-89f17f72d353f89cbf78d9a8bfcaa1d445519f73.tar.gz rspamd-89f17f72d353f89cbf78d9a8bfcaa1d445519f73.zip |
[Minor] Fix empty cache filename case
-rw-r--r-- | src/libserver/symcache/symcache_impl.cxx | 4 | ||||
-rw-r--r-- | src/libutil/cxx/locked_file.cxx | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/libserver/symcache/symcache_impl.cxx b/src/libserver/symcache/symcache_impl.cxx index 0878ae32b..6b1802d96 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 13406c6cf..6abc4a1b0 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<raii_file_sink, std::string> { + 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); |