FAILED: patch "[PATCH] ovl: check whiteout in ovl_create_over_whiteout()" failed to apply to 4.9-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
5e1275808630ea3b2c97c776f40e475017535f72Mon Sep 17 00:00:00 2001
From: Miklos Szeredi <[email protected]>
Date: Wed, 31 Oct 2018 12:15:23 +0100
Subject: [PATCH] ovl: check whiteout in ovl_create_over_whiteout()
Kaixuxia repors that it's possible to crash overlayfs by removing the whiteout on the upper layer before creating a directory over it. This is a reproducer:
mkdir lower upper work merge
touch lower/file
mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merge rm merge/file
ls -al merge/file
rm upper/file
ls -al merge/
mkdir merge/file
Before commencing with a vfs_rename(..., RENAME_EXCHANGE) verify that the lookup of "upper" is positive and is a whiteout, and return ESTALE otherwise.
Reported by: kaixuxia <[email protected]>
fs/overlayfs/dir.c +4 -0
@@ -462,6 +462,10 @@ static int ovl_create_over_whiteout(struct dentry *dentry, struct inode *inode,if (IS_ERR (upper)) goto out_unlock; + err = -ESTALE ; +if (d_is_negative (upper) || !IS_WHITEOUT (d_inode (upper))) + goto out_dput; + newdentry =ovl_create_temp (workdir, cattr); err =PTR_ERR (newdentry);if (IS_ERR (newdentry))
Quoted 6 lines · On Thu, Nov 15, 2018 at 1:08 AM <[email protected]> wrote:
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Attaching backport. Should also apply cleanly to v3.18..v4.9
Thanks,
Miklos
From: Miklos Szeredi <[email protected]>
Date: Wed, 31 Oct 2018 12:15:23 +0100
Subject: [4.9.y PATCH] ovl: check whiteout in ovl_create_over_whiteout()
commit 5e1275808630ea3b2c97c776f40e475017535f72 upstream.
Kaixuxia repors that it's possible to crash overlayfs by removing the whiteout on the upper layer before creating a directory over it. This is a reproducer:
mkdir lower upper work merge
touch lower/file
mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merge rm merge/file
ls -al merge/file
rm upper/file
ls -al merge/
mkdir merge/file
Before commencing with a vfs_rename(..., RENAME_EXCHANGE) verify that the lookup of "upper" is positive and is a whiteout, and return ESTALE otherwise.
Reported by: kaixuxia <[email protected]>
--- fs/overlayfs/dir.c | 4 ++++ 1 file changed, 4 insertions(+)
fs/overlayfs/dir.c +4 -0
@@ -407,6 +407,10 @@ static int ovl_create_over_whiteout(struct dentry *dentry, struct inode *inode,if (IS_ERR (upper)) goto out_dput; + err = -ESTALE ; +if (d_is_negative (upper) || !IS_WHITEOUT (d_inode (upper))) + goto out_dput2; + err =ovl_create_real (wdir, newdentry, stat, link, hardlink, true);if (err) goto out_dput2;
Signature · 1 line
2.14.5
Greg Kroah-Hartman
maintainerQuoted 9 lines · Miklos Szeredi
Quoted 6 lines · On Thu, Nov 15, 2018 at 1:08 AM <[email protected]> wrote:
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.Attaching backport. Should also apply cleanly to v3.18..v4.9
This doesn't apply at all, are you sure you generated it properly? Can you try it again?
thanks,
greg k-h
Quoted 10 lines · Greg Kroah-Hartman
Quoted 8 lines · Miklos Szeredi
Quoted 6 lines · On Thu, Nov 15, 2018 at 1:08 AM <[email protected]> wrote:
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Quoted 4 lines
Quoted 1 line
Attaching backport. Should also apply cleanly to v3.18..v4.9
This doesn't apply at all, are you sure you generated it properly? Can you try it again?
Okay. I only looked at the base kernel, not the stable one, so
probably there's some conflict in the stable patches themselves.
Thanks,
Miklos