Messages in this thread | | | From | "Xia, Hui" <> | Subject | RE: [kbuild-all] Re: fs/init.c:72:8: warning: Variable 'error' is reassigned a value before the old one has been used. | Date | Mon, 10 Aug 2020 09:28:27 +0000 |
| |
>-----Original Message----- >From: Christoph Hellwig <hch@lst.de> >Sent: 2020年8月8日 13:40 >To: kernel test robot <lkp@intel.com> >Cc: Christoph Hellwig <hch@lst.de>; kbuild-all@lists.01.org; linux- >kernel@vger.kernel.org; viro@zeniv.linux.org.uk >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 <lkp@intel.com> >> >> >> 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/kbuild-all@lists.01.org >---end quoted text--- >_______________________________________________ >kbuild-all mailing list -- kbuild-all@lists.01.org To unsubscribe send an email to >kbuild-all-leave@lists.01.org
| |