All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-09-29  6:25 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-29  6:25 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 27387 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a4e6f95a891ac08bd09d62e3e6dae239b150f4c1
commit: 8dbcc3fa387c16abfc88a628cf528c439c91b332 media: v4l2: prepare compat-ioctl rework
date:   11 months ago
:::::: branch date: 7 hours ago
:::::: commit date: 11 months ago
config: arm-randconfig-c002-20210927 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project dc6e8dfdfe7efecfda318d43a06fae18b40eb498)
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
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8dbcc3fa387c16abfc88a628cf528c439c91b332
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 8dbcc3fa387c16abfc88a628cf528c439c91b332
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
               ^
   include/uapi/asm-generic/ioctl.h:94:23: note: expanded from macro '_IOC_DIR'
   #define _IOC_DIR(nr)            (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
                                   ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3275:2: note: Taking true branch
           if (_IOC_DIR(cmd) != _IOC_NONE) {
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3276:7: note: Assuming the condition is true
                   if (ioc_size <= sizeof(sbuf)) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3276:3: note: Taking true branch
                   if (ioc_size <= sizeof(sbuf)) {
                   ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3286:9: note: Calling 'video_get_user'
                   err = video_get_user((void __user *)arg, parg, cmd,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3121:6: note: Assuming the condition is false
           if (!(_IOC_DIR(cmd) & _IOC_WRITE)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3121:2: note: Taking false branch
           if (!(_IOC_DIR(cmd) & _IOC_WRITE)) {
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3134:2: note: Taking false branch
           if (v4l2_is_known_ioctl(real_cmd)) {
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3142:6: note: 'cmd' is equal to 'real_cmd'
           if (cmd == real_cmd) {
               ^~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3142:2: note: Taking true branch
           if (cmd == real_cmd) {
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3143:7: note: Calling 'copy_from_user'
                   if (copy_from_user(parg, (void __user *)arg, n))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:6: note: Left side of '&&' is true
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
               ^
   include/linux/uaccess.h:157:33: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                          ^
   include/linux/compiler.h:77:20: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking false branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:161:6: note: Assuming 'res' is 0
           if (unlikely(res))
               ^
   include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                             ^~~~
   include/linux/uaccess.h:161:2: note: Taking false branch
           if (unlikely(res))
           ^
   include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3143:7: note: Returning from 'copy_from_user'
                   if (copy_from_user(parg, (void __user *)arg, n))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3143:3: note: Taking false branch
                   if (copy_from_user(parg, (void __user *)arg, n))
                   ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3182:7: note: 'err' is 0
           if (!err && n < _IOC_SIZE(real_cmd))
                ^~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3182:6: note: Left side of '&&' is true
           if (!err && n < _IOC_SIZE(real_cmd))
               ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3182:2: note: Taking false branch
           if (!err && n < _IOC_SIZE(real_cmd))
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3184:2: note: Returning zero (loaded from 'err'), which participates in a condition later
           return err;
           ^~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3286:9: note: Returning from 'video_get_user'
                   err = video_get_user((void __user *)arg, parg, cmd,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3288:7: note: 'err' is 0
                   if (err)
                       ^~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3288:3: note: Taking false branch
                   if (err)
                   ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3292:8: note: Calling 'check_array_args'
           err = check_array_args(cmd, parg, &array_size, &user_ptr, &kernel_ptr);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3032:2: note: Control jumps to 'case 3222820425:' @line 3071
           switch (cmd) {
           ^
   drivers/media/v4l2-core/v4l2-ioctl.c:3074:20: note: The left operand of '!=' is a garbage value
                   if (ctrls->count != 0) {
                       ~~~~~~~~~~~~ ^
>> drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                   err = -EFAULT;
                   ^     ~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: note: Value stored to 'err' is never read
                   err = -EFAULT;
                   ^     ~~~~~~~
   Suppressed 18 warnings (18 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   17 warnings generated.
   Suppressed 17 warnings (17 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   fs/configfs/file.c:149:10: warning: Value stored to 'len' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           ssize_t len = min_t(size_t, count, PAGE_SIZE);
                   ^~~
   fs/configfs/file.c:149:10: note: Value stored to 'len' during its initialization is never read
           ssize_t len = min_t(size_t, count, PAGE_SIZE);
                   ^~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   18 warnings generated.
   Suppressed 18 warnings (18 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   fs/configfs/symlink.c:72:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(s,"../");
                   ^~~~~~
   fs/configfs/symlink.c:72:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                   strcpy(s,"../");
                   ^~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   19 warnings generated.
   Suppressed 19 warnings (19 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   17 warnings generated.
   Suppressed 17 warnings (17 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   17 warnings generated.
   Suppressed 17 warnings (17 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/i2c/i2c-core-smbus.c:101:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
           return (status < 0) ? status : data.byte;
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/i2c-core-smbus.c:98:11: note: Calling 'i2c_smbus_xfer'
           status = i2c_smbus_xfer(client->adapter, client->addr, client->flags,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/i2c-core-smbus.c:539:6: note: Assuming 'res' is not equal to 0
           if (res)
               ^~~
   drivers/i2c/i2c-core-smbus.c:539:2: note: Taking true branch
           if (res)
           ^
   drivers/i2c/i2c-core-smbus.c:540:3: note: Returning without writing to 'data->byte'
                   return res;
                   ^
   drivers/i2c/i2c-core-smbus.c:98:11: note: Returning from 'i2c_smbus_xfer'
           status = i2c_smbus_xfer(client->adapter, client->addr, client->flags,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/i2c-core-smbus.c:101:10: note: Assuming 'status' is >= 0
           return (status < 0) ? status : data.byte;
                   ^~~~~~~~~~
   drivers/i2c/i2c-core-smbus.c:101:9: note: '?' condition is false
           return (status < 0) ? status : data.byte;
                  ^
   drivers/i2c/i2c-core-smbus.c:101:2: note: Undefined or garbage value returned to caller
           return (status < 0) ? status : data.byte;

vim +/err +3308 drivers/media/v4l2-core/v4l2-ioctl.c

c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2019-12-16  3257  
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c     Laurent Pinchart      2010-07-12  3258  long
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2019-12-16  3259  video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c     Laurent Pinchart      2010-07-12  3260  	       v4l2_kioctl func)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3261  {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3262  	char	sbuf[128];
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3263  	void    *mbuf = NULL;
1d94aa369da073a drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2010-04-06  3264  	void	*parg = (void *)arg;
069b747931f13ed drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-12-30  3265  	long	err  = -EINVAL;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3266  	bool	has_array_args;
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3267  	bool	always_copy = false;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3268  	size_t  array_size = 0;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3269  	void __user *user_ptr = NULL;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3270  	void	**kernel_ptr = NULL;
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2019-12-16  3271  	unsigned int cmd = video_translate_cmd(orig_cmd);
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26  3272  	const size_t ioc_size = _IOC_SIZE(cmd);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3273  
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3274  	/*  Copy arguments into temp kernel buffer  */
337f9d205972bfe drivers/media/video/v4l2-ioctl.c     Trent Piepho          2009-03-04  3275  	if (_IOC_DIR(cmd) != _IOC_NONE) {
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26  3276  		if (ioc_size <= sizeof(sbuf)) {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3277  			parg = sbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3278  		} else {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3279  			/* too big to allocate from stack */
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26  3280  			mbuf = kvmalloc(ioc_size, GFP_KERNEL);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3281  			if (NULL == mbuf)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3282  				return -ENOMEM;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3283  			parg = mbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3284  		}
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3285  
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3286  		err = video_get_user((void __user *)arg, parg, cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3287  				     orig_cmd, &always_copy);
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2019-12-16  3288  		if (err)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3289  			goto out;
1dc8b65c944e5cf drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-01-08  3290  	}
19c96e4b7d3c800 drivers/media/video/v4l2-ioctl.c     Trent Piepho          2009-03-04  3291  
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3292  	err = check_array_args(cmd, parg, &array_size, &user_ptr, &kernel_ptr);
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3293  	if (err < 0)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3294  		goto out;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3295  	has_array_args = err;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3296  
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3297  	if (has_array_args) {
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3298  		/*
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3299  		 * When adding new types of array args, make sure that the
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3300  		 * parent argument to ioctl (which contains the pointer to the
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3301  		 * array) fits into sbuf (so that mbuf will still remain
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3302  		 * unused up to here).
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3303  		 */
758d90e161382c1 drivers/media/v4l2-core/v4l2-ioctl.c Tomasz Figa           2017-06-19  3304  		mbuf = kvmalloc(array_size, GFP_KERNEL);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3305  		err = -ENOMEM;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3306  		if (NULL == mbuf)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3307  			goto out_array_args;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20 @3308  		err = -EFAULT;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3309  		if (in_compat_syscall())
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3310  			err = v4l2_compat_get_array_args(file, mbuf, user_ptr,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3311  							 array_size, orig_cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3312  							 parg);
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3313  		else
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3314  			err = copy_from_user(mbuf, user_ptr, array_size) ?
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3315  								-EFAULT : 0;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3316  		if (err)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3317  			goto out_array_args;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3318  		*kernel_ptr = mbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3319  	}
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3320  
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3321  	/* Handles IOCTL */
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c     Laurent Pinchart      2010-07-12  3322  	err = func(file, cmd, parg);
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2018-01-30  3323  	if (err == -ENOTTY || err == -ENOIOCTLCMD) {
02bbb814d8db7b6 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2012-02-08  3324  		err = -ENOTTY;
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2018-01-30  3325  		goto out;
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2018-01-30  3326  	}
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2018-01-30  3327  
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3328  	if (err == 0) {
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3329  		if (cmd == VIDIOC_DQBUF)
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3330  			trace_v4l2_dqbuf(video_devdata(file)->minor, parg);
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3331  		else if (cmd == VIDIOC_QBUF)
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3332  			trace_v4l2_qbuf(video_devdata(file)->minor, parg);
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2013-12-16  3333  	}
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3334  
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3335  	if (has_array_args) {
ba2d35c14b6fc55 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2014-03-17  3336  		*kernel_ptr = (void __force *)user_ptr;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3337  		if (in_compat_syscall()) {
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3338  			int put_err;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3339  
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3340  			put_err = v4l2_compat_put_array_args(file, user_ptr, mbuf,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3341  							     array_size, orig_cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3342  							     parg);
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3343  			if (put_err)
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3344  				err = put_err;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3345  		} else if (copy_to_user(user_ptr, mbuf, array_size)) {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3346  			err = -EFAULT;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3347  		}
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3348  		goto out_array_args;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3349  	}
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3350  	/*
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3351  	 * Some ioctls can return an error, but still have valid
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3352  	 * results that must be returned.
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3353  	 */
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil          2017-05-10  3354  	if (err < 0 && !always_copy)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3355  		goto out;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3356  
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c     Pawel Osciak          2010-12-23  3357  out_array_args:
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann         2020-10-30  3358  	if (video_put_user((void __user *)arg, parg, cmd, orig_cmd))
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3359  		err = -EFAULT;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3360  out:
758d90e161382c1 drivers/media/v4l2-core/v4l2-ioctl.c Tomasz Figa           2017-06-19  3361  	kvfree(mbuf);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3362  	return err;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c     Hans Verkuil          2008-07-20  3363  }
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c     Laurent Pinchart      2010-07-12  3364  

:::::: The code@line 3308 was first introduced by commit
:::::: 35ea11ff84719b1bfab2909903a9640a86552fd1 V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h

:::::: TO: Hans Verkuil <hverkuil@xs4all.nl>
:::::: CC: Mauro Carvalho Chehab <mchehab@infradead.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 24552 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-29  6:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29  6:25 drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] 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.