From 068714f9f5a96fbd94560211cec75775ee023d02 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov 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 }); } -- 2.39.5