The struct automount is allocated before validating the path, but both error paths (filename_lookup failure and !d_is_dir check) skip freeing it. Move the allocation after validation succeeds.
Signed-off-by: Ahmad Fatoum <[email protected]> --- fs/fs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/fs.c b/fs/fs.c index 5ca98ec12704..dc6c30802d89 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -3450,7 +3450,7 @@ EXPORT_SYMBOL(automount_remove); int automount_add(const char *pathname, const char *cmd) { - struct automount *am = xzalloc(sizeof(*am)); + struct automount *am; struct path path; int ret; @@ -3463,6 +3463,7 @@ int automount_add(const char *pathname, const char *cmd) goto out; } + am = xzalloc(sizeof(*am)); am->path = dpath(path.dentry, d_root); am->dentry = dget(path.dentry); am->dentry->d_flags |= DCACHE_NEED_AUTOMOUNT; -- 2.47.3
