Skip to content

Commit 5b0446c

Browse files
Bharath Vedarthamgregkh
authored andcommitted
9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie
commit 962a991 upstream. v9fs_cache_session_get_cookie assigns a random cachetag to v9ses->cachetag, if the cachetag is not assigned previously. v9fs_random_cachetag allocates memory to v9ses->cachetag with kmalloc and uses scnprintf to fill it up with a cachetag. But if scnprintf fails, v9ses->cachetag is not freed in the current code causing a memory leak. Fix this by freeing v9ses->cachetag it v9fs_random_cachetag fails. This was reported by syzbot, the link to the report is below: https://syzkaller.appspot.com/bug?id=f012bdf297a7a4c860c38a88b44fbee43fd9bbf3 Link: http://lkml.kernel.org/r/20190522194519.GA5313@bharath12345-Inspiron-5559 Reported-by: syzbot+3a030a73b6c1e9833815@syzkaller.appspotmail.com Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com> Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent d85bc11 commit 5b0446c

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

fs/9p/cache.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ void v9fs_cache_session_get_cookie(struct v9fs_session_info *v9ses)
6666
if (!v9ses->cachetag) {
6767
if (v9fs_random_cachetag(v9ses) < 0) {
6868
v9ses->fscache = NULL;
69+
kfree(v9ses->cachetag);
70+
v9ses->cachetag = NULL;
6971
return;
7072
}
7173
}

0 commit comments

Comments
 (0)