]> git.itanic.dy.fi Git - linux-stable/commitdiff
9p: Fix memory leak in v9fs_mount
authorZheng Bin <zhengbin13@huawei.com>
Mon, 15 Jun 2020 01:21:53 +0000 (09:21 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 07:48:15 +0000 (09:48 +0200)
commit cb0aae0e31c632c407a2cab4307be85a001d4d98 upstream.

v9fs_mount
  v9fs_session_init
    v9fs_cache_session_get_cookie
      v9fs_random_cachetag                     -->alloc cachetag
      v9ses->fscache = fscache_acquire_cookie  -->maybe NULL
  sb = sget                                    -->fail, goto clunk
clunk_fid:
  v9fs_session_close
    if (v9ses->fscache)                        -->NULL
      kfree(v9ses->cachetag)

Thus memleak happens.

Link: http://lkml.kernel.org/r/20200615012153.89538-1-zhengbin13@huawei.com
Fixes: 60e78d2c993e ("9p: Add fscache support to 9p")
Cc: <stable@vger.kernel.org> # v2.6.32+
Signed-off-by: Zheng Bin <zhengbin13@huawei.com>
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/9p/v9fs.c

index c52f10efdc9c67af076235d033a8b9db838981e5..b4dbe7b7115125fff2cfc2baf0cab869086efd9d 100644 (file)
@@ -513,10 +513,9 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
        }
 
 #ifdef CONFIG_9P_FSCACHE
-       if (v9ses->fscache) {
+       if (v9ses->fscache)
                v9fs_cache_session_put_cookie(v9ses);
-               kfree(v9ses->cachetag);
-       }
+       kfree(v9ses->cachetag);
 #endif
        kfree(v9ses->uname);
        kfree(v9ses->aname);