From: David Sterba Date: Mon, 7 Nov 2016 12:58:51 +0000 (+0100) Subject: btrfs-progs: crc32: use fallback implementation for unaligned buffers X-Git-Tag: upstream/4.16.1~1036 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=92847b5cd68d601b5ebadb74d17985b6421960bc;p=platform%2Fupstream%2Fbtrfs-progs.git btrfs-progs: crc32: use fallback implementation for unaligned buffers ASAN reports that at some point the crc function gets an unaligned buffer. It's the optimized intel version that casts char to ulong, the buffer is the embedded filename in the directory items. Signed-off-by: David Sterba --- diff --git a/kernel-lib/crc32c.c b/kernel-lib/crc32c.c index dfa4e6c..29fd01d 100644 --- a/kernel-lib/crc32c.c +++ b/kernel-lib/crc32c.c @@ -218,5 +218,9 @@ u32 __crc32c_le(u32 crc, unsigned char const *data, size_t length) u32 crc32c_le(u32 crc, unsigned char const *data, size_t length) { + /* Use by-byte access for unaligned buffers */ + if ((unsigned long)data % sizeof(unsigned long)) + return __crc32c_le(crc, data, length); + return crc_function(crc, data, length); }