Hi Kees, kernel test robot noticed the following build warnings: [auto build test WARNING on kees/for-next/hardening] [also build test WARNING on kees/for-next/pstore kees/for-next/kspp akpm-mm/mm-everything linus/master v6.3-rc5 next-20230405] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Kees-Cook/kunit-tool-Enable-CONFIG_FORTIFY_SOURCE-under-UML/20230406-081014 base: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening patch link: https://lore.kernel.org/r/20230406000212.3442647-3-keescook%40chromium.org patch subject: [PATCH 3/9] string: Add Kunit tests for strcat() family config: riscv-randconfig-r042-20230403 (https://download.01.org/0day-ci/archive/20230406/202304061243.Bx5SK1xq-lkp@xxxxxxxxx/config) compiler: riscv64-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/1cdc1d7eeb09497f84367bfc2919d5fcc380e454 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Kees-Cook/kunit-tool-Enable-CONFIG_FORTIFY_SOURCE-under-UML/20230406-081014 git checkout 1cdc1d7eeb09497f84367bfc2919d5fcc380e454 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202304061243.Bx5SK1xq-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from include/linux/err.h:5, from include/kunit/assert.h:12, from include/kunit/test.h:12, from lib/strcat_kunit.c:8: lib/strcat_kunit.c: In function 'strncat_test': >> lib/strcat_kunit.c:52:33: warning: 'strncat' output truncated copying 2 bytes from a string of length 4 [-Wstringop-truncation] 52 | KUNIT_EXPECT_TRUE(test, strncat(dest, "ABCD", 2) == dest); | ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:77:45: note: in definition of macro 'likely' 77 | # define likely(x) __builtin_expect(!!(x), 1) | ^ include/kunit/test.h:545:9: note: in expansion of macro 'KUNIT_UNARY_ASSERTION' 545 | KUNIT_UNARY_ASSERTION(test, \ | ^~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:736:9: note: in expansion of macro 'KUNIT_TRUE_MSG_ASSERTION' 736 | KUNIT_TRUE_MSG_ASSERTION(test, \ | ^~~~~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:733:9: note: in expansion of macro 'KUNIT_EXPECT_TRUE_MSG' 733 | KUNIT_EXPECT_TRUE_MSG(test, condition, NULL) | ^~~~~~~~~~~~~~~~~~~~~ lib/strcat_kunit.c:52:9: note: in expansion of macro 'KUNIT_EXPECT_TRUE' 52 | KUNIT_EXPECT_TRUE(test, strncat(dest, "ABCD", 2) == dest); | ^~~~~~~~~~~~~~~~~ vim +/strncat +52 lib/strcat_kunit.c 29 30 static void strncat_test(struct kunit *test) 31 { 32 char dest[8]; 33 34 /* Destination is terminated. */ 35 memset(dest, 0, sizeof(dest)); 36 KUNIT_EXPECT_EQ(test, strlen(dest), 0); 37 /* Empty copy of size 0 does nothing. */ 38 KUNIT_EXPECT_TRUE(test, strncat(dest, "", 0) == dest); 39 KUNIT_EXPECT_STREQ(test, dest, ""); 40 /* Empty copy of size 1 does nothing too. */ 41 KUNIT_EXPECT_TRUE(test, strncat(dest, "", 1) == dest); 42 KUNIT_EXPECT_STREQ(test, dest, ""); 43 /* Copy of max 0 characters should do nothing. */ 44 KUNIT_EXPECT_TRUE(test, strncat(dest, "asdf", 0) == dest); 45 KUNIT_EXPECT_STREQ(test, dest, ""); 46 47 /* 4 characters copied in, even if max is 8. */ 48 KUNIT_EXPECT_TRUE(test, strncat(dest, "four\000123", 8) == dest); 49 KUNIT_EXPECT_STREQ(test, dest, "four"); 50 KUNIT_EXPECT_EQ(test, dest[5], '\0'); 51 /* 2 characters copied in okay, 2 ignored. */ > 52 KUNIT_EXPECT_TRUE(test, strncat(dest, "ABCD", 2) == dest); 53 KUNIT_EXPECT_STREQ(test, dest, "fourAB"); 54 } 55 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests