OSDN Git Service

ext4: fix memory leak in ext4_fill_super
authorPavel Skripkin <paskripkin@gmail.com>
Fri, 30 Apr 2021 18:50:46 +0000 (21:50 +0300)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 17 Jun 2021 14:53:19 +0000 (10:53 -0400)
commit618f003199c6188e01472b03cdbba227f1dc5f24
tree6f73f2324cae9f4d4c58606b793d8261273723a8
parent1fc57ca5a2cd26e0a526e5eb2b0fc0c054117a5b
ext4: fix memory leak in ext4_fill_super

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>
fs/ext4/ext4.h
fs/ext4/mmp.c
fs/ext4/super.c