On Wed, Feb 01, 2023 at 01:59:33PM -0800, kernelci.org bot wrote:
arm64/for-kernelci build: 2 builds: 1 failed, 1 passed, 1 error, 1 warning (v6.2-rc6-115-gca72d58361ee)
Full Build Summary: https://kernelci.org/build/arm64/branch/for-kernelci/kernel/v6.2-rc6-115-gca...
Tree: arm64 Branch: for-kernelci Git Describe: v6.2-rc6-115-gca72d58361ee Git Commit: ca72d58361ee2e0d246385d21474b283f67416b9 Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git Built: 1 unique architecture
Build Failure Detected:
arm64: allmodconfig: (gcc-10) FAIL
Errors and Warnings Detected:
arm64: allmodconfig (gcc-10): 1 error, 1 warning
Errors summary:
1 include/linux/fortify-string.h:57:29: error: argument 2 null where non-null expected [-Werror=nonnull]
For some reason this shows with gcc-10 on arm64 allmodconfig but it's been around for some time. We only noticed it now due to the SLUB_TINY config that made it into 6.2-rc1 which disables KASAN. I can trigger it on 6.1 just by disabling KASAN after an allmodconfig.
The problem is the NULL 2nd argument passed to append_fifo_load_as_imm() in gen_split_key() in drivers/crypto/caam/key_gen.c. The error below looks sane to me and the key_gen.c needs fixing as you can't do a memcpy() from a NULL source pointer. But I have no clue how to fix it, so cc'ing the code author and crypto maintainer.
In file included from include/linux/string.h:253, from include/linux/bitmap.h:11, from include/linux/cpumask.h:12, from include/linux/smp.h:13, from arch/arm64/include/asm/arch_timer.h:18, from arch/arm64/include/asm/timex.h:8, from include/linux/timex.h:67, from include/linux/time32.h:13, from include/linux/time.h:60, from arch/arm64/include/asm/stat.h:12, from include/linux/stat.h:6, from include/linux/module.h:13, from drivers/crypto/caam/compat.h:10, from drivers/crypto/caam/key_gen.c:8: drivers/crypto/caam/desc_constr.h: In function ‘append_data.constprop’: include/linux/fortify-string.h:57:29: error: argument 2 null where non-null expected [-Werror=nonnull] 57 | #define __underlying_memcpy __builtin_memcpy | ^ include/linux/fortify-string.h:578:2: note: in expansion of macro ‘__underlying_memcpy’ 578 | __underlying_##op(p, q, __fortify_size); \ | ^~~~~~~~~~~~~ include/linux/fortify-string.h:623:26: note: in expansion of macro ‘__fortify_memcpy_chk’ 623 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ | ^~~~~~~~~~~~~~~~~~~~ drivers/crypto/caam/desc_constr.h:167:3: note: in expansion of macro ‘memcpy’ 167 | memcpy(offset, data, len); | ^~~~~~ include/linux/fortify-string.h:57:29: note: in a call to built-in function ‘__builtin_memcpy’ 57 | #define __underlying_memcpy __builtin_memcpy | ^ include/linux/fortify-string.h:578:2: note: in expansion of macro ‘__underlying_memcpy’ 578 | __underlying_##op(p, q, __fortify_size); \ | ^~~~~~~~~~~~~ include/linux/fortify-string.h:623:26: note: in expansion of macro ‘__fortify_memcpy_chk’ 623 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ | ^~~~~~~~~~~~~~~~~~~~ drivers/crypto/caam/desc_constr.h:167:3: note: in expansion of macro ‘memcpy’ 167 | memcpy(offset, data, len); | ^~~~~~ cc1: all warnings being treated as errors make[5]: *** [scripts/Makefile.build:252: drivers/crypto/caam/key_gen.o] Error 1