Hi Jane, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v6.1-rc1] [cannot apply to next-20221020] [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/Jane-Chu/vsprintf-check-non-canonical-pointer-by-kern_addr_valid/20221020-103535 patch link: https://lore.kernel.org/r/20221019193431.2923462-2-jane.chu%40oracle.com patch subject: [PATCH v3 1/1] vsprintf: protect kernel from panic due to non-canonical pointer dereference config: x86_64-rhel-8.3-func compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/7da79322bb256f65be136ef3ca3d557e42da8ffe git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jane-Chu/vsprintf-check-non-canonical-pointer-by-kern_addr_valid/20221020-103535 git checkout 7da79322bb256f65be136ef3ca3d557e42da8ffe # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): lib/vsprintf.c: In function 'check_pointer_msg': >> lib/vsprintf.c:701:14: error: implicit declaration of function 'kern_addr_valid'; did you mean 'virt_addr_valid'? [-Werror=implicit-function-declaration] 701 | if (!kern_addr_valid((unsigned long)ptr)) | ^~~~~~~~~~~~~~~ | virt_addr_valid lib/vsprintf.c: In function 'va_format': lib/vsprintf.c:1688:9: warning: function 'va_format' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 1688 | buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va); | ^~~ cc1: some warnings being treated as errors vim +701 lib/vsprintf.c 687 688 /* 689 * Do not call any complex external code here. Nested printk()/vsprintf() 690 * might cause infinite loops. Failures might break printk() and would 691 * be hard to debug. 692 */ 693 static const char *check_pointer_msg(const void *ptr) 694 { 695 if (!ptr) 696 return "(null)"; 697 698 if ((unsigned long)ptr < PAGE_SIZE || IS_ERR_VALUE(ptr)) 699 return "(efault)"; 700 > 701 if (!kern_addr_valid((unsigned long)ptr)) 702 return "(efault)"; 703 704 return NULL; 705 } 706 -- 0-DAY CI Kernel Test Service https://01.org/lkp