- Fix metadata_exporter with many recipients by @yo000 in #4294 - [Fix] Fix favicon.ico Content-Type header by @moisseev in #4302 - [Minor] Fix copy-paste error by @moisseev in #4305 - Add basic auth to metadata_exporter http pusher by @yo000 in #4300 - [Enhancement] Add composite rule against AFF involving freemailers by @twesterhever in #4304 - Penalize bounce spam by @frederikbosch in #4308 - Added 068714f9f5a96fbd94560211cec75775ee023d02.patch: Official patch for the unaligned memory issue described in https://github.com/rspamd/rspamd/issues/4329 - Add cleanup code to the %postun scriptlet to remove bad files, created by earlier/unpatched 3.4 versions, during package upgrade OBS-URL: https://build.opensuse.org/package/show/server:mail/rspamd?expand=0&rev=80
33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
From 068714f9f5a96fbd94560211cec75775ee023d02 Mon Sep 17 00:00:00 2001
|
|
From: Vsevolod Stakhov <vsevolod@rspamd.com>
|
|
Date: Fri, 11 Nov 2022 20:34:51 +0000
|
|
Subject: [PATCH] [CritFix] Deserialise hyperscan to the page-aligned space to
|
|
prevent alignment issues
|
|
|
|
Issue: #4329
|
|
---
|
|
src/libserver/hyperscan_tools.cxx | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/libserver/hyperscan_tools.cxx b/src/libserver/hyperscan_tools.cxx
|
|
index 6187208a9..96366067d 100644
|
|
--- a/src/libserver/hyperscan_tools.cxx
|
|
+++ b/src/libserver/hyperscan_tools.cxx
|
|
@@ -306,7 +306,15 @@ auto load_cached_hs_file(const char *fname, std::int64_t offset = 0) -> tl::expe
|
|
msg_debug_hyperscan_lambda("multipattern: create new database in %s; %Hz size",
|
|
tmpfile_pattern.data(), unserialized_size);
|
|
void *buf;
|
|
- posix_memalign(&buf, 16, unserialized_size);
|
|
+#ifdef HAVE_GETPAGESIZE
|
|
+ auto page_size = getpagesize();
|
|
+#else
|
|
+ auto page_size = sysconf(_SC_PAGESIZE);
|
|
+#endif
|
|
+ if (page_size == -1) {
|
|
+ page_size = 4096;
|
|
+ }
|
|
+ posix_memalign(&buf, page_size, unserialized_size);
|
|
if (buf == nullptr) {
|
|
return tl::make_unexpected(error {"Cannot allocate memory", errno, error_category::CRITICAL });
|
|
}
|