Message ID | 20241209185904.507350-29-zfigura@codeweavers.com |
---|---|
State | Superseded |
Headers | show |
Series | NT synchronization primitive driver | expand |
Hi Elizabeth,
kernel test robot noticed the following build errors:
[auto build test ERROR on cdd30ebb1b9f36159d66f088b61aee264e649d7a]
url: https://github.com/intel-lab-lkp/linux/commits/Elizabeth-Figura/ntsync-Introduce-NTSYNC_IOC_WAIT_ANY/20241210-031155
base: cdd30ebb1b9f36159d66f088b61aee264e649d7a
patch link: https://lore.kernel.org/r/20241209185904.507350-29-zfigura%40codeweavers.com
patch subject: [PATCH v6 28/28] ntsync: No longer depend on BROKEN.
config: i386-randconfig-002-20241212 (https://download.01.org/0day-ci/archive/20241212/202412121219.EQhUbN0S-lkp@intel.com/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/20241212/202412121219.EQhUbN0S-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412121219.EQhUbN0S-lkp@intel.com/
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:903: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
On Thu, Dec 12, 2024, at 05:52, kernel test robot wrote: > Hi Elizabeth, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on cdd30ebb1b9f36159d66f088b61aee264e649d7a] > > url: > https://github.com/intel-lab-lkp/linux/commits/Elizabeth-Figura/ntsync-Introduce-NTSYNC_IOC_WAIT_ANY/20241210-031155 > base: cdd30ebb1b9f36159d66f088b61aee264e649d7a > 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:903: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(); > | ^~~~~~~~~~~~~~~ I looked up the function from the github URL above and found int fds[NTSYNC_MAX_WAIT_COUNT + 1]; const __u32 count = args->count; struct ntsync_q *q; __u32 total_count; __u32 i, j; if (args->pad || (args->flags & ~NTSYNC_WAIT_REALTIME)) return -EINVAL; if (args->count > NTSYNC_MAX_WAIT_COUNT) return -EINVAL; total_count = count; if (args->alert) total_count++; if (copy_from_user(fds, u64_to_user_ptr(args->objs), array_size(count, sizeof(*fds)))) return -EFAULT; which looks correct to me, as it has appropriate range checking on args->count, but I can see how the warning may be a result of checking 'args->count' instead of 'count'. Arnd
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 09cbe3f0ab1e..fb772bfe27c3 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -517,7 +517,6 @@ config OPEN_DICE config NTSYNC tristate "NT synchronization primitive emulation" - depends on BROKEN help This module provides kernel support for emulation of Windows NT synchronization primitives. It is not a hardware driver.
f5b335dc025cfee90957efa90dc72fada0d5abb4 ("misc: ntsync: mark driver as "broken" to prevent from building") was committed to avoid the driver being used while only part of its functionality was released. Since the rest of the functionality has now been committed, revert this. Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com> --- drivers/misc/Kconfig | 1 - 1 file changed, 1 deletion(-)