From: Miklos Szeredi Date: Fri, 6 Aug 2021 08:03:12 +0000 (+0200) Subject: ovl: fix uninitialized pointer read in ovl_lookup_real_one() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=580c610429b3994e8db24418927747cf28443cde;p=linux.git ovl: fix uninitialized pointer read in ovl_lookup_real_one() One error path can result in release_dentry_name_snapshot() being called before "name" was initialized by take_dentry_name_snapshot(). Fix by moving the release_dentry_name_snapshot() to immediately after the only use. Reported-by: Colin Ian King Signed-off-by: Miklos Szeredi --- diff --git a/fs/overlayfs/export.c b/fs/overlayfs/export.c index 41ebf52f1bbce..ebde05c9cf62e 100644 --- a/fs/overlayfs/export.c +++ b/fs/overlayfs/export.c @@ -392,6 +392,7 @@ static struct dentry *ovl_lookup_real_one(struct dentry *connected, */ take_dentry_name_snapshot(&name, real); this = lookup_one_len(name.name.name, connected, name.name.len); + release_dentry_name_snapshot(&name); err = PTR_ERR(this); if (IS_ERR(this)) { goto fail; @@ -406,7 +407,6 @@ static struct dentry *ovl_lookup_real_one(struct dentry *connected, } out: - release_dentry_name_snapshot(&name); dput(parent); inode_unlock(dir); return this;