* [brauner-github:vfs-6.19.ovl 95/100] fs/overlayfs/copy_up.c:812 ovl_copy_up_workdir() error: uninitialized symbol 'temp'.
@ 2025-11-18 18:51 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-11-18 18:51 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: Christian Brauner <christianvanbrauner@gmail.com>
TO: Christian Brauner <brauner@kernel.org>
CC: Amir Goldstein <amir73il@gmail.com>
tree: https://github.com/brauner/linux.git vfs-6.19.ovl
head: 048bceb3415a09b6a830c0b9956c650e8c1861a3
commit: 41faaabc80d0666c831a225f410e0fb08e8186c5 [95/100] ovl: port ovl_copy_up_workdir() to cred guard
:::::: branch date: 29 hours ago
:::::: commit date: 29 hours ago
config: i386-randconfig-141-20251118 (https://download.01.org/0day-ci/archive/20251119/202511190225.KJIeqCih-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202511190225.KJIeqCih-lkp@intel.com/
smatch warnings:
fs/overlayfs/copy_up.c:812 ovl_copy_up_workdir() error: uninitialized symbol 'temp'.
vim +/temp +812 fs/overlayfs/copy_up.c
8ff1ba15c5f6b8 Christian Brauner 2025-11-14 780
8ff1ba15c5f6b8 Christian Brauner 2025-11-14 781 DEFINE_CLASS(copy_up_creds, const struct cred *,
8ff1ba15c5f6b8 Christian Brauner 2025-11-14 782 if (!IS_ERR_OR_NULL(_T)) ovl_revert_copy_up_creds(_T),
8ff1ba15c5f6b8 Christian Brauner 2025-11-14 783 ovl_prepare_copy_up_creds(dentry), struct dentry *dentry)
8ff1ba15c5f6b8 Christian Brauner 2025-11-14 784
3a1e819b4e8021 Amir Goldstein 2017-03-30 785 /*
b10cdcdc2012b2 Amir Goldstein 2018-10-08 786 * Copyup using workdir to prepare temp file. Used when copying up directories,
b10cdcdc2012b2 Amir Goldstein 2018-10-08 787 * special files or when upper fs doesn't support O_TMPFILE.
3a1e819b4e8021 Amir Goldstein 2017-03-30 788 */
b10cdcdc2012b2 Amir Goldstein 2018-10-08 789 static int ovl_copy_up_workdir(struct ovl_copy_up_ctx *c)
b10cdcdc2012b2 Amir Goldstein 2018-10-08 790 {
576bb263450bbb Christian Brauner 2022-04-04 791 struct ovl_fs *ofs = OVL_FS(c->dentry->d_sb);
b10cdcdc2012b2 Amir Goldstein 2018-10-08 792 struct inode *inode;
2b1a77461f1602 Miklos Szeredi 2022-09-24 793 struct path path = { .mnt = ovl_upper_mnt(ofs) };
a8b0026847b8c4 Al Viro 2023-11-20 794 struct dentry *temp, *upper, *trap;
b10cdcdc2012b2 Amir Goldstein 2018-10-08 795 int err;
6b52243f633eb5 Miklos Szeredi 2018-10-26 796 struct ovl_cattr cattr = {
6b52243f633eb5 Miklos Szeredi 2018-10-26 797 /* Can't properly set mode on creation because of the umask */
6b52243f633eb5 Miklos Szeredi 2018-10-26 798 .mode = c->stat.mode & S_IFMT,
6b52243f633eb5 Miklos Szeredi 2018-10-26 799 .rdev = c->stat.rdev,
6b52243f633eb5 Miklos Szeredi 2018-10-26 800 .link = c->link
6b52243f633eb5 Miklos Szeredi 2018-10-26 801 };
b10cdcdc2012b2 Amir Goldstein 2018-10-08 802
41faaabc80d066 Christian Brauner 2025-11-14 803 scoped_class(copy_up_creds, copy_up_creds, c->dentry) {
41faaabc80d066 Christian Brauner 2025-11-14 804 if (IS_ERR(copy_up_creds))
41faaabc80d066 Christian Brauner 2025-11-14 805 return PTR_ERR(copy_up_creds);
6b52243f633eb5 Miklos Szeredi 2018-10-26 806
c63e56a4a6523f Amir Goldstein 2023-08-16 807 ovl_start_write(c->dentry);
576bb263450bbb Christian Brauner 2022-04-04 808 temp = ovl_create_temp(ofs, c->workdir, &cattr);
c63e56a4a6523f Amir Goldstein 2023-08-16 809 ovl_end_write(c->dentry);
41faaabc80d066 Christian Brauner 2025-11-14 810 }
6b52243f633eb5 Miklos Szeredi 2018-10-26 811
b10cdcdc2012b2 Amir Goldstein 2018-10-08 @812 if (IS_ERR(temp))
c63e56a4a6523f Amir Goldstein 2023-08-16 813 return PTR_ERR(temp);
bd64e57586d372 Vivek Goyal 2018-05-11 814
2b1a77461f1602 Miklos Szeredi 2022-09-24 815 /*
2b1a77461f1602 Miklos Szeredi 2022-09-24 816 * Copy up data first and then xattrs. Writing data after
2b1a77461f1602 Miklos Szeredi 2022-09-24 817 * xattrs will remove security.capability xattr automatically.
2b1a77461f1602 Miklos Szeredi 2022-09-24 818 */
2b1a77461f1602 Miklos Szeredi 2022-09-24 819 path.dentry = temp;
2b1a77461f1602 Miklos Szeredi 2022-09-24 820 err = ovl_copy_up_data(c, &path);
9d23967b18c64b NeilBrown 2025-07-16 821 ovl_start_write(c->dentry);
9d23967b18c64b NeilBrown 2025-07-16 822 if (err)
9d23967b18c64b NeilBrown 2025-07-16 823 goto cleanup_unlocked;
9d23967b18c64b NeilBrown 2025-07-16 824
c4f8f862b31ccd NeilBrown 2025-07-16 825 if (S_ISDIR(c->stat.mode) && c->indexed) {
c4f8f862b31ccd NeilBrown 2025-07-16 826 err = ovl_create_index(c->dentry, c->origin_fh, temp);
c4f8f862b31ccd NeilBrown 2025-07-16 827 if (err)
c4f8f862b31ccd NeilBrown 2025-07-16 828 goto cleanup_unlocked;
c4f8f862b31ccd NeilBrown 2025-07-16 829 }
c4f8f862b31ccd NeilBrown 2025-07-16 830
c63e56a4a6523f Amir Goldstein 2023-08-16 831 /*
413ba91089c742 Amir Goldstein 2023-12-17 832 * We cannot hold lock_rename() throughout this helper, because of
c63e56a4a6523f Amir Goldstein 2023-08-16 833 * lock ordering with sb_writers, which shouldn't be held when calling
c63e56a4a6523f Amir Goldstein 2023-08-16 834 * ovl_copy_up_data(), so lock workdir and destdir and make sure that
c63e56a4a6523f Amir Goldstein 2023-08-16 835 * temp wasn't moved before copy up completion or cleanup.
c63e56a4a6523f Amir Goldstein 2023-08-16 836 */
a8b0026847b8c4 Al Viro 2023-11-20 837 trap = lock_rename(c->workdir, c->destdir);
a8b0026847b8c4 Al Viro 2023-11-20 838 if (trap || temp->d_parent != c->workdir) {
413ba91089c742 Amir Goldstein 2023-12-17 839 /* temp or workdir moved underneath us? abort without cleanup */
413ba91089c742 Amir Goldstein 2023-12-17 840 dput(temp);
c63e56a4a6523f Amir Goldstein 2023-08-16 841 err = -EIO;
9d23967b18c64b NeilBrown 2025-07-16 842 if (!IS_ERR(trap))
9d23967b18c64b NeilBrown 2025-07-16 843 unlock_rename(c->workdir, c->destdir);
a8b0026847b8c4 Al Viro 2023-11-20 844 goto out;
c63e56a4a6523f Amir Goldstein 2023-08-16 845 }
2b1a77461f1602 Miklos Szeredi 2022-09-24 846
2b1a77461f1602 Miklos Szeredi 2022-09-24 847 err = ovl_copy_up_metadata(c, temp);
b10cdcdc2012b2 Amir Goldstein 2018-10-08 848 if (err)
b10cdcdc2012b2 Amir Goldstein 2018-10-08 849 goto cleanup;
bd64e57586d372 Vivek Goyal 2018-05-11 850
22f289ce1f8b10 Christian Brauner 2022-04-04 851 upper = ovl_lookup_upper(ofs, c->destname.name, c->destdir,
22f289ce1f8b10 Christian Brauner 2022-04-04 852 c->destname.len);
6b52243f633eb5 Miklos Szeredi 2018-10-26 853 err = PTR_ERR(upper);
6b52243f633eb5 Miklos Szeredi 2018-10-26 854 if (IS_ERR(upper))
6b52243f633eb5 Miklos Szeredi 2018-10-26 855 goto cleanup;
6b52243f633eb5 Miklos Szeredi 2018-10-26 856
bc9241367aac08 NeilBrown 2025-06-13 857 err = ovl_do_rename(ofs, c->workdir, temp, c->destdir, upper, 0);
a735bdf0b78528 NeilBrown 2025-07-16 858 unlock_rename(c->workdir, c->destdir);
6b52243f633eb5 Miklos Szeredi 2018-10-26 859 dput(upper);
0c288874936364 Vivek Goyal 2018-05-11 860 if (err)
a735bdf0b78528 NeilBrown 2025-07-16 861 goto cleanup_unlocked;
b10cdcdc2012b2 Amir Goldstein 2018-10-08 862
b10cdcdc2012b2 Amir Goldstein 2018-10-08 863 inode = d_inode(c->dentry);
0c71faf5a607c8 Alexander Larsson 2023-04-19 864 if (c->metacopy_digest)
0c71faf5a607c8 Alexander Larsson 2023-04-19 865 ovl_set_flag(OVL_HAS_DIGEST, inode);
0c71faf5a607c8 Alexander Larsson 2023-04-19 866 else
0c71faf5a607c8 Alexander Larsson 2023-04-19 867 ovl_clear_flag(OVL_HAS_DIGEST, inode);
0c71faf5a607c8 Alexander Larsson 2023-04-19 868 ovl_clear_flag(OVL_VERIFIED_DIGEST, inode);
0c71faf5a607c8 Alexander Larsson 2023-04-19 869
0c71faf5a607c8 Alexander Larsson 2023-04-19 870 if (!c->metacopy)
0c71faf5a607c8 Alexander Larsson 2023-04-19 871 ovl_set_upperdata(inode);
6b52243f633eb5 Miklos Szeredi 2018-10-26 872 ovl_inode_update(inode, temp);
b10cdcdc2012b2 Amir Goldstein 2018-10-08 873 if (S_ISDIR(inode->i_mode))
b10cdcdc2012b2 Amir Goldstein 2018-10-08 874 ovl_set_flag(OVL_WHITEOUTS, inode);
a8b0026847b8c4 Al Viro 2023-11-20 875 out:
c63e56a4a6523f Amir Goldstein 2023-08-16 876 ovl_end_write(c->dentry);
b10cdcdc2012b2 Amir Goldstein 2018-10-08 877
0c288874936364 Vivek Goyal 2018-05-11 878 return err;
b10cdcdc2012b2 Amir Goldstein 2018-10-08 879
b10cdcdc2012b2 Amir Goldstein 2018-10-08 880 cleanup:
9d23967b18c64b NeilBrown 2025-07-16 881 unlock_rename(c->workdir, c->destdir);
9d23967b18c64b NeilBrown 2025-07-16 882 cleanup_unlocked:
fe4d3360f9cbb5 NeilBrown 2025-07-16 883 ovl_cleanup(ofs, c->workdir, temp);
6b52243f633eb5 Miklos Szeredi 2018-10-26 884 dput(temp);
9d23967b18c64b NeilBrown 2025-07-16 885 goto out;
0c288874936364 Vivek Goyal 2018-05-11 886 }
0c288874936364 Vivek Goyal 2018-05-11 887
:::::: The code at line 812 was first introduced by commit
:::::: b10cdcdc2012b2c199077a0a648e8a7067e573bf ovl: untangle copy up call chain
:::::: TO: Amir Goldstein <amir73il@gmail.com>
:::::: CC: Miklos Szeredi <mszeredi@redhat.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-11-18 18:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-18 18:51 [brauner-github:vfs-6.19.ovl 95/100] fs/overlayfs/copy_up.c:812 ovl_copy_up_workdir() error: uninitialized symbol 'temp' 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.