Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c44600c9 authored by Al Viro's avatar Al Viro
Browse files

nfs_lookup_revalidate(): fix a leak



We are leaking fattr and fhandle if we decide that dentry is not to
be invalidated, after all (e.g. happens to be a mountpoint).  Just
free both before that...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 696199f8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1101,6 +1101,8 @@ static int nfs_lookup_revalidate(struct dentry *dentry, unsigned int flags)
out_zap_parent:
	nfs_zap_caches(dir);
 out_bad:
	nfs_free_fattr(fattr);
	nfs_free_fhandle(fhandle);
	nfs_mark_for_revalidate(dir);
	if (inode && S_ISDIR(inode->i_mode)) {
		/* Purge readdir caches. */
@@ -1113,8 +1115,6 @@ static int nfs_lookup_revalidate(struct dentry *dentry, unsigned int flags)
		shrink_dcache_parent(dentry);
	}
	d_drop(dentry);
	nfs_free_fattr(fattr);
	nfs_free_fhandle(fhandle);
	dput(parent);
	dfprintk(LOOKUPCACHE, "NFS: %s(%s/%s) is invalid\n",
			__func__, dentry->d_parent->d_name.name,