diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2023-10-27 08:12:16 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2023-10-27 08:12:16 +0100 |
commit | 8d70c4a50198b18f2e16ab9ff58ca43df0d4ebd8 (patch) | |
tree | 0d33ea09100c81d077258b04a5042f164fa31e8a /src | |
parent | 1112ad8b30b0f5951d9fa553bea6072105284011 (diff) | |
download | rspamd-8d70c4a50198b18f2e16ab9ff58ca43df0d4ebd8.tar.gz rspamd-8d70c4a50198b18f2e16ab9ff58ca43df0d4ebd8.zip |
[Fix] A workaround for brain-damaged std::filesystem behaviour
Issue: #4665
Diffstat (limited to 'src')
-rw-r--r-- | src/libserver/hyperscan_tools.cxx | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/libserver/hyperscan_tools.cxx b/src/libserver/hyperscan_tools.cxx index dc0586107..f7bd78a9b 100644 --- a/src/libserver/hyperscan_tools.cxx +++ b/src/libserver/hyperscan_tools.cxx @@ -147,22 +147,11 @@ public: fpath = std::filesystem::canonical(fpath, ec); - if (!ec) { + if (!ec && ec.value() != 0) { msg_err_hyperscan("invalid path: \"%s\", error message: %s", fname, ec.message().c_str()); return; } - if (fpath.empty()) { - msg_err_hyperscan("attempt to add an empty hyperscan file!"); - return; - } - - if (!std::filesystem::exists(fpath)) { - msg_err_hyperscan("attempt to add non existing hyperscan file: %s, %s", fpath.c_str(), - strerror(errno)); - return; - } - auto dir = fpath.parent_path(); auto ext = fpath.extension(); @@ -188,7 +177,7 @@ public: fpath = std::filesystem::canonical(fpath, ec); - if (!ec) { + if (!ec && ec.value() != 0) { msg_err_hyperscan("invalid path to remove: \"%s\", error message: %s", fname, ec.message().c_str()); return; |