rspamd/068714f9f5a96fbd94560211cec75775ee023d02.patch
Marcus Rueckert e13d94138c - Upgrade to 3.4 again
- 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
2022-11-14 16:23:22 +00:00

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 });
}