Hi! > commit eaf6cc7165c9c5aa3c2f9faa03a98598123d0afb upstream. > > Both the decompressor code and the kasan logic try to override > the memcpy() and memmove() definitions, which leading to a clash > in a KASAN-enabled kernel with XZ decompression: > > arch/arm/boot/compressed/decompress.c:50:9: error: 'memmove' macro redefined [-Werror,-Wmacro-redefined] > #define memmove memmove > ^ > arch/arm/include/asm/string.h:59:9: note: previous definition is here > #define memmove(dst, src, len) __memmove(dst, src, len) > ^ > arch/arm/boot/compressed/decompress.c:51:9: error: 'memcpy' macro redefined [-Werror,-Wmacro-redefined] > #define memcpy memcpy > ^ > arch/arm/include/asm/string.h:58:9: note: previous definition is here > #define memcpy(dst, src, len) __memcpy(dst, src, len) > ^ > > Here we want the set of functions from the decompressor, so undefine > the other macros before the override. AFAICT the conflicting defines are not present in v4.4 or v5.10, so warnings should not be there and #undefs are not needed. Best regards, Pavel > +++ b/arch/arm/boot/compressed/decompress.c > @@ -47,7 +47,10 @@ extern char * strchrnul(const char *, in > #endif > > #ifdef CONFIG_KERNEL_XZ > +/* Prevent KASAN override of string helpers in decompressor */ > +#undef memmove > #define memmove memmove > +#undef memcpy > #define memcpy memcpy > #include "../../../../lib/decompress_unxz.c" > #endif > -- http://www.livejournal.com/~pavelmachek