mirror of
https://gitee.com/openharmony/third_party_f2fs-tools
synced 2024-11-23 10:10:00 +00:00
fsck.f2fs: check condition to avoid wrong memory allocation
This patch should fix the below bug. Info: checkpoint state = 4 : compacted_summary sudden-power-off [FIX] (is_valid_ssa_data_blk: 301) --> Set data summary 0x1039 -> [0x3] [0x0] [0x0] [ASSERT] (fsck_chk_data_blk:1459) --> SIT bitmap is 0x0. blk_addr[0x20b6d8] [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x2 with invalid NID/ino 0x1644b164 [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x2 with bad ino 0x1644b164 [ASSERT] (__chk_dentries:1269) --> Bad dentry 0x0 with unexpected ftype 0x2c [FIX] (__chk_dentries:1272) --> Clear bad dentry 0x4 with bad ftype 0x2c [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x5 with invalid NID/ino 0x49000000 [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x5 with bad ino 0x49000000 [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x7 with invalid NID/ino 0x67706a2e [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x7 with bad ino 0x67706a2e [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x8 with invalid NID/ino 0x4a437044 [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x8 with bad ino 0x4a437044 [ASSERT] (__chk_dentries:1269) --> Bad dentry 0x0 with unexpected ftype 0x0 [FIX] (__chk_dentries:1272) --> Clear bad dentry 0xf with bad ftype 0x0 [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x20 with invalid NID/ino 0x4a150009 [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x20 with bad ino 0x4a150009 [ASSERT] (__chk_dentries:1255) --> Bad dentry 0x21 with invalid NID/ino 0x1800094a [FIX] (__chk_dentries:1258) --> Clear bad dentry 0x21 with bad ino 0x1800094a *** buffer overflow detected ***: fsck.f2fs terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7fa56b17b38f] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7fa56b212c9c] /lib/x86_64-linux-gnu/libc.so.6(+0x109b60)[0x7fa56b211b60] fsck.f2fs[0x4032f6] fsck.f2fs[0x4063f7] fsck.f2fs[0x406d09] fsck.f2fs[0x4046b8] fsck.f2fs[0x405378] fsck.f2fs[0x405d86] fsck.f2fs[0x402071] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fa56b129ec5] Reported-by: Mirh <mirh@protonmail.ch> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
65f3d40f78
commit
68ef569e44
@ -1281,8 +1281,8 @@ static int __chk_dentries(struct f2fs_sb_info *sbi, struct child_info *child,
|
||||
|
||||
name_len = le16_to_cpu(dentry[i].name_len);
|
||||
|
||||
if (name_len == 0) {
|
||||
ASSERT_MSG("Bad dentry 0x%x with zero name_len", i);
|
||||
if (name_len == 0 || name_len > F2FS_NAME_LEN) {
|
||||
ASSERT_MSG("Bad dentry 0x%x with invalid name_len", i);
|
||||
if (c.fix_on) {
|
||||
FIX_MSG("Clear bad dentry 0x%x", i);
|
||||
test_and_clear_bit_le(i, bitmap);
|
||||
|
Loading…
Reference in New Issue
Block a user