From: Al Viro Date: Fri, 25 Oct 2019 04:03:11 +0000 (-0400) Subject: autofs: fix a leak in autofs_expire_indirect() X-Git-Tag: v5.4-rc8~20^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03ad0d703df75c43f78bd72e16124b5b94a95188;p=thirdparty%2Fkernel%2Flinux.git autofs: fix a leak in autofs_expire_indirect() if the second call of should_expire() in there ends up grabbing and returning a new reference to dentry, we need to drop it before continuing. Signed-off-by: Al Viro --- diff --git a/fs/autofs/expire.c b/fs/autofs/expire.c index 2866fabf497f2..91f5787dae7c4 100644 --- a/fs/autofs/expire.c +++ b/fs/autofs/expire.c @@ -459,9 +459,10 @@ static struct dentry *autofs_expire_indirect(struct super_block *sb, */ how &= ~AUTOFS_EXP_LEAVES; found = should_expire(expired, mnt, timeout, how); - if (!found || found != expired) - /* Something has changed, continue */ + if (found != expired) { // something has changed, continue + dput(found); goto next; + } if (expired != dentry) dput(dentry);