ext4: fix memory leak in ext4_fill_super
authorPavel Skripkin <paskripkin@gmail.com>
Fri, 30 Apr 2021 18:50:46 +0000 (21:50 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 08:01:28 +0000 (10:01 +0200)
commitcecfdb9cf9a700d1037066173abac0617f6788df
tree1b5bd1d203638fc67b5a6e9153e243b32d31aee7
parent8f5c773a2871cf446e3f36b2834fb25bbb28512b
ext4: fix memory leak in ext4_fill_super

commit 618f003199c6188e01472b03cdbba227f1dc5f24 upstream.

static int kthread(void *_create) will return -ENOMEM
or -EINTR in case of internal failure or
kthread_stop() call happens before threadfn call.

To prevent fancy error checking and make code
more straightforward we moved all cleanup code out
of kmmpd threadfn.

Also, dropped struct mmpd_data at all. Now struct super_block
is a threadfn data and struct buffer_head embedded into
struct ext4_sb_info.

Reported-by: syzbot+d9e482e303930fa4f6ff@syzkaller.appspotmail.com
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Link: https://lore.kernel.org/r/20210430185046.15742-1-paskripkin@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/ext4.h
fs/ext4/mmp.c
fs/ext4/super.c