include/linux/thread_info.h:259:25: error: call to '__bad_copy_to' declared with attribute error: copy destination size is too small

From: kernel test robot
Date: Fri Feb 07 2025 - 07:12:17 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: bb066fe812d6fb3a9d01c073d9f1e2fd5a63403b
commit: c301e1fefc2d6c83a2beb47e9cdd7b59a90b0067 ntsync: No longer depend on BROKEN.
date: 4 weeks ago
config: i386-randconfig-001-20250207 (https://download.01.org/0day-ci/archive/20250207/202502072019.LYoCR9bF-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250207/202502072019.LYoCR9bF-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502072019.LYoCR9bF-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

In file included from include/linux/spinlock.h:60,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from drivers/misc/ntsync.c:11:
In function 'check_copy_size',
inlined from 'copy_from_user' at include/linux/uaccess.h:207:7,
inlined from 'setup_wait' at drivers/misc/ntsync.c:888:6:
>> include/linux/thread_info.h:259:25: error: call to '__bad_copy_to' declared with attribute error: copy destination size is too small
259 | __bad_copy_to();
| ^~~~~~~~~~~~~~~


vim +/__bad_copy_to +259 include/linux/thread_info.h

b0377fedb652808 Al Viro 2017-06-29 248
9dd819a15162f8f Kees Cook 2019-09-25 249 static __always_inline __must_check bool
b0377fedb652808 Al Viro 2017-06-29 250 check_copy_size(const void *addr, size_t bytes, bool is_source)
b0377fedb652808 Al Viro 2017-06-29 251 {
c80d92fbb67b2c8 Kees Cook 2021-06-17 252 int sz = __builtin_object_size(addr, 0);
b0377fedb652808 Al Viro 2017-06-29 253 if (unlikely(sz >= 0 && sz < bytes)) {
b0377fedb652808 Al Viro 2017-06-29 254 if (!__builtin_constant_p(bytes))
b0377fedb652808 Al Viro 2017-06-29 255 copy_overflow(sz, bytes);
b0377fedb652808 Al Viro 2017-06-29 256 else if (is_source)
b0377fedb652808 Al Viro 2017-06-29 257 __bad_copy_from();
b0377fedb652808 Al Viro 2017-06-29 258 else
b0377fedb652808 Al Viro 2017-06-29 @259 __bad_copy_to();
b0377fedb652808 Al Viro 2017-06-29 260 return false;
b0377fedb652808 Al Viro 2017-06-29 261 }
6d13de1489b6bf5 Kees Cook 2019-12-04 262 if (WARN_ON_ONCE(bytes > INT_MAX))
6d13de1489b6bf5 Kees Cook 2019-12-04 263 return false;
b0377fedb652808 Al Viro 2017-06-29 264 check_object_size(addr, bytes, is_source);
b0377fedb652808 Al Viro 2017-06-29 265 return true;
b0377fedb652808 Al Viro 2017-06-29 266 }
b0377fedb652808 Al Viro 2017-06-29 267

:::::: The code at line 259 was first introduced by commit
:::::: b0377fedb6528087ed319b0d054d6ed82240372c copy_{to,from}_user(): consolidate object size checks

:::::: TO: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
:::::: CC: Al Viro <viro@xxxxxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki