From 3a291774d17e096950854506d8869dfe950ec932 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Thu, 12 Apr 2018 12:04:49 +0200 Subject: [PATCH] ovl: add WARN_ON() for non-dir redirect cases Signed-off-by: Miklos Szeredi --- fs/overlayfs/namei.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index 72230b759b58..52f0b13be633 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -256,6 +256,12 @@ static int ovl_lookup_single(struct dentry *base, struct ovl_lookup_data *d, d->stop = true; if (d->is_dir) goto put_and_out; + + /* + * NB: handle failure to lookup non-last element when non-dir + * redirects become possible + */ + WARN_ON(!last_element); goto out; } if (last_element) @@ -1006,6 +1012,11 @@ struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry, if (IS_ERR(inode)) goto out_free_oe; + /* + * NB: handle redirected hard links when non-dir redirects + * become possible + */ + WARN_ON(OVL_I(inode)->redirect); OVL_I(inode)->redirect = upperredirect; }