Chao Yu 061536fa27 fsck.f2fs: do xnid sanity check only during fsck
commit c954e7cc4ba79a7fedef7dd66c8993381172d78e
category: bugfix
issue: #I6VAS0
CVE: NA

Signed-off-by: DongSenhao <dongsenhao2@huawei.com>
---------------------------------------

As Eric reported:

Commit 7a22451bc2b4 ("fsck.f2fs: fix to check validation of i_xattr_nid")

This commit caused a regression where 'dump.f2fs -i <inode> <device>'
now segfaults if the inode has any extended attributes.

It's because read_all_xattrs() now calls fsck_sanity_check_nid(), which
eventually dereferences f2fs_fsck::main_area_bitmap, which is NULL.

I'm not sure what was intended here.

Here's the output from gdb:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f750fa in f2fs_test_bit (nr=1024, p=0x0) at libf2fs.c:304
304             return (mask & *addr) != 0;
(gdb) bt
    ntype=TYPE_XATTR, ni=0x7fffffffdd20) at fsck.c:449
    ntype=TYPE_XATTR, ni=0x7fffffffdd20) at fsck.c:495

fsck_sanity_check_nid() should only called from fsck.f2fs context, rather
than dump.f2fs, otherwise it may cause dereferencing structure fields of
fsck incorrectly.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: dongsenhao <dongsenhao2@huawei.com>
2023-04-13 14:13:44 +08:00
..
2022-08-23 10:40:59 +08:00
2017-11-06 20:07:40 -08:00
2017-11-06 20:07:40 -08:00
2017-11-06 20:07:40 -08:00
2017-11-06 20:07:40 -08:00
2023-04-13 14:13:43 +08:00
2020-08-20 09:08:34 -07:00
2020-08-17 23:52:38 -07:00
2020-08-20 09:08:34 -07:00
2017-11-06 20:07:40 -08:00