projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3881433
)
f2fs: fix double free of f2fs_sb_info
author
Eric Biggers
<ebiggers@google.com>
Sat, 13 Jan 2024 00:57:47 +0000
(16:57 -0800)
committer
Eric Biggers
<ebiggers@google.com>
Sat, 13 Jan 2024 02:55:09 +0000
(18:55 -0800)
kill_f2fs_super() is called even if f2fs_fill_super() fails.
f2fs_fill_super() frees the struct f2fs_sb_info, so it must set
sb->s_fs_info to NULL to prevent it from being freed again.
Fixes:
275dca4630c1
("f2fs: move release of block devices to after kill_block_super()")
Reported-by: <syzbot+8f477ac014ff5b32d81f@syzkaller.appspotmail.com>
Closes: https://lore.kernel.org/lkml/
0000000000006cb174060ec34502
@google.com
Reviewed-by: Chao Yu <chao@kernel.org>
Link:
https://lore.kernel.org/linux-f2fs-devel/20240113005747.38887-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/f2fs/super.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/f2fs/super.c
b/fs/f2fs/super.c
index d00d21a8b53adf8defa18deb55d438e3dd855a1a..d45ab0992ae5947e6f89628e8e8829c548645d26 100644
(file)
--- a/
fs/f2fs/super.c
+++ b/
fs/f2fs/super.c
@@
-4880,6
+4880,7
@@
free_sbi:
if (sbi->s_chksum_driver)
crypto_free_shash(sbi->s_chksum_driver);
kfree(sbi);
+ sb->s_fs_info = NULL;
/* give only one another chance */
if (retry_cnt > 0 && skip_recovery) {