On Mon, Oct 31, 2022 at 04:36:47AM +1000, John Thomson wrote: > In the mips CONFIG_SYS_SUPPORTS_ZBOOT kernel, fix the compile error > when using CONFIG_FORTIFY_SOURCE=y > > LD vmlinuz > mipsel-openwrt-linux-musl-ld: arch/mips/boot/compressed/decompress.o: in > function `decompress_kernel': > ./include/linux/decompress/mm.h:(.text.decompress_kernel+0x177c): > undefined reference to `warn_slowpath_fmt' > > kernel test robot helped identify this as related to fortify. The error > appeared with commit 54d9469bc515 ("fortify: Add run-time WARN for > cross-field memcpy()") > Link: https://lore.kernel.org/r/202209161144.x9xSqNQZ-lkp@xxxxxxxxx/ > > Resolve this in the same style as commit cfecea6ead5f ("lib/string: > Move helper functions out of string.c") > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Fixes: 54d9469bc515 ("fortify: Add run-time WARN for cross-field memcpy()") > Signed-off-by: John Thomson <git@xxxxxxxxxxxxxxxxxxxxxxxxxxx> > --- > not sure about the fixes tag: > compile error only occurs due to the fortify commit, but it looks like > this change could have been part of the other commit identified in the > message: lib/string move helper functions? I think the Fixes tag is reasonable. Strictly speaking, it should likely be whatever added the memcpy() in decompress.c, but that's mostly nonsense, since nothing else had tripped yet. :) The issue is that the memcpy() has a runtime length, so CONFIG_FORTIFY_SOURCE was inserting the logic for a runtime warning, which doesn't exist here. This is the correct fix (turning off FORTIFY in the early boot loader). Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook