* [stable:linux-4.19.y 2019/3409] include/linux/sunrpc/xdr.h:512:17: error: comparison is always false due to limited range of data type
@ 2022-07-30 9:36 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-30 9:36 UTC (permalink / raw)
To: Dan Carpenter; +Cc: kbuild-all, linux-kernel, Greg Kroah-Hartman, Chuck Lever
Hi Dan,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
head: b275bfc9c2d385c7f7a66f9dcd0364e71cd8b864
commit: 3a2789e8ccb4a3e2a631f6817a2d3bb98b8c4fd8 [2019/3409] NFSD: prevent integer overflow on 32 bit systems
config: sparc64-randconfig-r015-20220729 (https://download.01.org/0day-ci/archive/20220730/202207301724.i0Djw2HL-lkp@intel.com/config)
compiler: sparc64-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://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3a2789e8ccb4a3e2a631f6817a2d3bb98b8c4fd8
git remote add stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
git fetch --no-tags stable linux-4.19.y
git checkout 3a2789e8ccb4a3e2a631f6817a2d3bb98b8c4fd8
# 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=sparc64 SHELL=/bin/bash arch/sparc/kernel/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/sunrpc/sched.h:19,
from include/linux/sunrpc/auth.h:15,
from include/linux/nfs_fs.h:31,
from arch/sparc/kernel/sys_sparc32.c:25:
include/linux/sunrpc/xdr.h: In function 'xdr_stream_decode_uint32_array':
>> include/linux/sunrpc/xdr.h:512:17: error: comparison is always false due to limited range of data type [-Werror=type-limits]
512 | if (len > SIZE_MAX / sizeof(*p))
| ^
In file included from include/linux/ethtool.h:17,
from include/linux/netdevice.h:41,
from include/net/sock.h:51,
from include/linux/tcp.h:23,
from include/linux/ipv6.h:87,
from include/net/ipv6.h:16,
from include/linux/sunrpc/clnt.h:28,
from include/linux/nfs_fs.h:32:
include/linux/compat.h: In function 'put_compat_sigset':
include/linux/compat.h:495:58: error: this statement may fall through [-Werror=implicit-fallthrough=]
495 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3];
| ~~~~~~~~~^~~~~~~~~~~~~
include/linux/compat.h:496:9: note: here
496 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2];
| ^~~~
include/linux/compat.h:496:58: error: this statement may fall through [-Werror=implicit-fallthrough=]
496 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2];
| ~~~~~~~~~^~~~~~~~~~~~~
include/linux/compat.h:497:9: note: here
497 | case 2: v.sig[3] = (set->sig[1] >> 32); v.sig[2] = set->sig[1];
| ^~~~
include/linux/compat.h:497:58: error: this statement may fall through [-Werror=implicit-fallthrough=]
497 | case 2: v.sig[3] = (set->sig[1] >> 32); v.sig[2] = set->sig[1];
| ~~~~~~~~~^~~~~~~~~~~~~
include/linux/compat.h:498:9: note: here
498 | case 1: v.sig[1] = (set->sig[0] >> 32); v.sig[0] = set->sig[0];
| ^~~~
cc1: all warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for FRAME_POINTER
Depends on [n]: DEBUG_KERNEL [=y] && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS [=n] || MCOUNT [=n]
Selected by [y]:
- LOCKDEP [=y] && DEBUG_KERNEL [=y] && LOCK_DEBUGGING_SUPPORT [=y] && !MIPS && !PPC && !ARM && !S390 && !MICROBLAZE && !ARC && !X86
vim +512 include/linux/sunrpc/xdr.h
490
491 /**
492 * xdr_stream_decode_uint32_array - Decode variable length array of integers
493 * @xdr: pointer to xdr_stream
494 * @array: location to store the integer array or NULL
495 * @array_size: number of elements to store
496 *
497 * Return values:
498 * On success, returns number of elements stored in @array
499 * %-EBADMSG on XDR buffer overflow
500 * %-EMSGSIZE if the size of the array exceeds @array_size
501 */
502 static inline ssize_t
503 xdr_stream_decode_uint32_array(struct xdr_stream *xdr,
504 __u32 *array, size_t array_size)
505 {
506 __be32 *p;
507 __u32 len;
508 ssize_t retval;
509
510 if (unlikely(xdr_stream_decode_u32(xdr, &len) < 0))
511 return -EBADMSG;
> 512 if (len > SIZE_MAX / sizeof(*p))
513 return -EBADMSG;
514 p = xdr_inline_decode(xdr, len * sizeof(*p));
515 if (unlikely(!p))
516 return -EBADMSG;
517 if (array == NULL)
518 return len;
519 if (len <= array_size) {
520 if (len < array_size)
521 memset(array+len, 0, (array_size-len)*sizeof(*array));
522 array_size = len;
523 retval = len;
524 } else
525 retval = -EMSGSIZE;
526 for (; array_size > 0; p++, array++, array_size--)
527 *array = be32_to_cpup(p);
528 return retval;
529 }
530 #endif /* __KERNEL__ */
531
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-30 9:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-30 9:36 [stable:linux-4.19.y 2019/3409] include/linux/sunrpc/xdr.h:512:17: error: comparison is always false due to limited range of data type kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.