liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).

Thanks to Agostino Sarubbo.
Fixes: https://github.com/tukaani-project/xz/issues/62
This commit is contained in:
Lasse Collin 2023-09-14 16:34:07 +03:00
parent 7379bb3eed
commit 4f44ef8675
1 changed files with 8 additions and 0 deletions

View File

@ -206,6 +206,14 @@ calc_hi(uint64_t poly, uint64_t a)
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
__attribute__((__target__("ssse3,sse4.1,pclmul")))
#endif
// The intrinsics use 16-byte-aligned reads from buf, thus they may read
// up to 15 bytes before or after the buffer (depending on the alignment
// of the buf argument). The values of the extra bytes are ignored.
// This unavoidably trips -fsanitize=address so address sanitizier has
// to be disabled for this function.
#if lzma_has_attribute(__no_sanitize_address__)
__attribute__((__no_sanitize_address__))
#endif
static uint64_t
crc64_clmul(const uint8_t *buf, size_t size, uint64_t crc)
{