:::::: :::::: Manual check reason: "low confidence bisect report" :::::: Manual check reason: "low confidence static check warning: drivers/counter/counter-chrdev.c:63:22: warning: use of uninitialized value '<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]" ::::::
BCC: [email protected] CC: [email protected] CC: [email protected] TO: William Breathitt Gray <[email protected]> CC: Jonathan Cameron <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 10d4879f9ef01cc6190fafe4257d06f375bab92c commit: b6c50affda5957a3629b149a91c7f6688ffce7f7 counter: Add character device interface date: 11 months ago :::::: branch date: 17 hours ago :::::: commit date: 11 months ago config: arm-randconfig-c002-20220828 (https://download.01.org/0day-ci/archive/20220828/[email protected]/config) compiler: arm-linux-gnueabi-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/torvalds/linux.git/commit/?id=b6c50affda5957a3629b149a91c7f6688ffce7f7 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout b6c50affda5957a3629b149a91c7f6688ffce7f7 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross ARCH=arm KBUILD_USERCFLAGS='-fanalyzer -Wno-error' If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> gcc-analyzer warnings: (new ones prefixed by >>) In function 'counter_get_data': cc1: warning: use of uninitialized value '<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'counter_get_data': events 1-2 | |drivers/counter/counter-chrdev.c:470:12: | 470 | if (comp_node->component.type == COUNTER_COMPONENT_NONE) | | ^ | | | | | (1) following 'false' branch... |...... | 473 | switch (comp->type) { | | ~~~~~~~~~~ | | | | | (2) ...to here | 'counter_get_data': event 3 | |cc1: | (3): following 'default:' branch... | 'counter_get_data': event 4 | | 487 | *value = value_u8; | | ~~~~~~~^~~~~~~~~~ | | | | | (4) ...to here | 'counter_get_data': event 5 | |cc1: | (5): use of uninitialized value '[01m[K<unknown>[m[K' here | drivers/counter/counter-chrdev.c: In function 'counter_chrdev_read': >> drivers/counter/counter-chrdev.c:63:22: warning: use of uninitialized value >> '<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 63 | unsigned int copied; | ^~~~~~ 'counter_chrdev_read': event 1 | | 63 | unsigned int copied; | | ^~~~~~ | | | | | (1) use of uninitialized value '<unknown>' here | vim +63 drivers/counter/counter-chrdev.c b6c50affda5957 William Breathitt Gray 2021-09-29 33 b6c50affda5957 William Breathitt Gray 2021-09-29 34 #define counter_comp_read_is_equal(a, b) \ b6c50affda5957 William Breathitt Gray 2021-09-29 35 (a.action_read == b.action_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 36 a.device_u8_read == b.device_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 37 a.count_u8_read == b.count_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 38 a.signal_u8_read == b.signal_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 39 a.device_u32_read == b.device_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 40 a.count_u32_read == b.count_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 41 a.signal_u32_read == b.signal_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 42 a.device_u64_read == b.device_u64_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 43 a.count_u64_read == b.count_u64_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 44 a.signal_u64_read == b.signal_u64_read) b6c50affda5957 William Breathitt Gray 2021-09-29 45 b6c50affda5957 William Breathitt Gray 2021-09-29 46 #define counter_comp_read_is_set(comp) \ b6c50affda5957 William Breathitt Gray 2021-09-29 47 (comp.action_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 48 comp.device_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 49 comp.count_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 50 comp.signal_u8_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 51 comp.device_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 52 comp.count_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 53 comp.signal_u32_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 54 comp.device_u64_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 55 comp.count_u64_read || \ b6c50affda5957 William Breathitt Gray 2021-09-29 56 comp.signal_u64_read) b6c50affda5957 William Breathitt Gray 2021-09-29 57 b6c50affda5957 William Breathitt Gray 2021-09-29 58 static ssize_t counter_chrdev_read(struct file *filp, char __user *buf, b6c50affda5957 William Breathitt Gray 2021-09-29 59 size_t len, loff_t *f_ps) b6c50affda5957 William Breathitt Gray 2021-09-29 60 { b6c50affda5957 William Breathitt Gray 2021-09-29 61 struct counter_device *const counter = filp->private_data; b6c50affda5957 William Breathitt Gray 2021-09-29 62 int err; b6c50affda5957 William Breathitt Gray 2021-09-29 @63 unsigned int copied; b6c50affda5957 William Breathitt Gray 2021-09-29 64 b6c50affda5957 William Breathitt Gray 2021-09-29 65 if (!counter->ops) b6c50affda5957 William Breathitt Gray 2021-09-29 66 return -ENODEV; b6c50affda5957 William Breathitt Gray 2021-09-29 67 b6c50affda5957 William Breathitt Gray 2021-09-29 68 if (len < sizeof(struct counter_event)) b6c50affda5957 William Breathitt Gray 2021-09-29 69 return -EINVAL; b6c50affda5957 William Breathitt Gray 2021-09-29 70 b6c50affda5957 William Breathitt Gray 2021-09-29 71 do { b6c50affda5957 William Breathitt Gray 2021-09-29 72 if (kfifo_is_empty(&counter->events)) { b6c50affda5957 William Breathitt Gray 2021-09-29 73 if (filp->f_flags & O_NONBLOCK) b6c50affda5957 William Breathitt Gray 2021-09-29 74 return -EAGAIN; b6c50affda5957 William Breathitt Gray 2021-09-29 75 b6c50affda5957 William Breathitt Gray 2021-09-29 76 err = wait_event_interruptible(counter->events_wait, b6c50affda5957 William Breathitt Gray 2021-09-29 77 !kfifo_is_empty(&counter->events) || b6c50affda5957 William Breathitt Gray 2021-09-29 78 !counter->ops); b6c50affda5957 William Breathitt Gray 2021-09-29 79 if (err < 0) b6c50affda5957 William Breathitt Gray 2021-09-29 80 return err; b6c50affda5957 William Breathitt Gray 2021-09-29 81 if (!counter->ops) b6c50affda5957 William Breathitt Gray 2021-09-29 82 return -ENODEV; b6c50affda5957 William Breathitt Gray 2021-09-29 83 } b6c50affda5957 William Breathitt Gray 2021-09-29 84 b6c50affda5957 William Breathitt Gray 2021-09-29 85 if (mutex_lock_interruptible(&counter->events_lock)) b6c50affda5957 William Breathitt Gray 2021-09-29 86 return -ERESTARTSYS; b6c50affda5957 William Breathitt Gray 2021-09-29 87 err = kfifo_to_user(&counter->events, buf, len, &copied); b6c50affda5957 William Breathitt Gray 2021-09-29 88 mutex_unlock(&counter->events_lock); b6c50affda5957 William Breathitt Gray 2021-09-29 89 if (err < 0) b6c50affda5957 William Breathitt Gray 2021-09-29 90 return err; b6c50affda5957 William Breathitt Gray 2021-09-29 91 } while (!copied); b6c50affda5957 William Breathitt Gray 2021-09-29 92 b6c50affda5957 William Breathitt Gray 2021-09-29 93 return copied; b6c50affda5957 William Breathitt Gray 2021-09-29 94 } b6c50affda5957 William Breathitt Gray 2021-09-29 95 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
