>-----Original Message----- >From: Christoph Hellwig <[email protected]> >Sent: 2020年8月8日 13:40 >To: kernel test robot <[email protected]> >Cc: Christoph Hellwig <[email protected]>; [email protected]; linux- >[email protected]; [email protected] >Subject: [kbuild-all] Re: fs/init.c:72:8: warning: Variable 'error' is >reassigned a >value before the old one has been used. > >On Sat, Aug 08, 2020 at 11:35:45AM +0800, kernel test robot wrote: >> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> master >> head: 30185b69a2d533c4ba6ca926b8390ce7de495e29 >> commit: 4b7ca5014cbef51cdb99fd644eae4f3773747a05 init: add an init_chroot >helper >> date: 8 days ago >> compiler: hppa-linux-gcc (GCC) 9.3.0 >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot <[email protected]> >> >> >> cppcheck warnings: (new ones prefixed by >>) >> >> >> fs/init.c:72:8: warning: Variable 'error' is reassigned a value >> >> before the old one has been used. [redundantAssignment] >> error = security_path_chroot(&path); >> ^ >> fs/init.c:69:8: note: Variable 'error' is reassigned a value before the >> old one >has been used. >> error = -EPERM; >> ^ >> fs/init.c:72:8: note: Variable 'error' is reassigned a value before the >> old one >has been used. >> error = security_path_chroot(&path); > >I really don't understand the warning. We assign a value to error, if there >is an >error we jump the out labe and return it, or else continue. > >That is a pretty common pattern in the kernel. What do I miss? Please ignore this report. It is false positive. We will double check this type of warning in future. Sorry for inconvenient. Thanks, Hui > >> >> vim +/error +72 fs/init.c >> >> 57 >> 58 int __init init_chroot(const char *filename) >> 59 { >> 60 struct path path; >> 61 int error; >> 62 >> 63 error = kern_path(filename, LOOKUP_FOLLOW | >LOOKUP_DIRECTORY, &path); >> 64 if (error) >> 65 return error; >> 66 error = inode_permission(path.dentry->d_inode, MAY_EXEC >> | >MAY_CHDIR); >> 67 if (error) >> 68 goto dput_and_out; >> 69 error = -EPERM; >> 70 if (!ns_capable(current_user_ns(), CAP_SYS_CHROOT)) >> 71 goto dput_and_out; >> > 72 error = security_path_chroot(&path); >> 73 if (error) >> 74 goto dput_and_out; >> 75 set_fs_root(current->fs, &path); >> 76 dput_and_out: >> 77 path_put(&path); >> 78 return error; >> 79 } >> 80 >> >> --- >> 0-DAY CI Kernel Test Service, Intel Corporation >> https://lists.01.org/hyperkitty/list/[email protected] >---end quoted text--- >_______________________________________________ >kbuild-all mailing list -- [email protected] To unsubscribe send an >email to >[email protected]

