From 9523c1300d22fa715765c181cf991d14d6112fb1 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 20 Oct 2023 21:53:35 +0300 Subject: [PATCH] liblzma: #define crc_attr_no_sanitize_address in crc_common.h. --- src/liblzma/check/crc_common.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/liblzma/check/crc_common.h b/src/liblzma/check/crc_common.h index 4764eb17..c949f793 100644 --- a/src/liblzma/check/crc_common.h +++ b/src/liblzma/check/crc_common.h @@ -39,6 +39,16 @@ #endif +// CRC CLMUL code needs this because accessing input buffers that aren't +// aligned to the vector size will inherently trip the address sanitizer. +#if lzma_has_attribute(__no_sanitize_address__) +# define crc_attr_no_sanitize_address \ + __attribute__((__no_sanitize_address__)) +#else +# define crc_attr_no_sanitize_address +#endif + + // The inline keyword is only a suggestion to the compiler to substitute the // body of the function into the places where it is called. If a function // is large and called multiple times then compiler may choose to ignore the