• Zhang Xiaoxu's avatar
    btrfs: selftests: fix wrong error check in btrfs_free_dummy_root() · 9b2f2034
    Zhang Xiaoxu authored
    The btrfs_alloc_dummy_root() uses ERR_PTR as the error return value
    rather than NULL, if error happened, there will be a NULL pointer
    dereference:
    
      BUG: KASAN: null-ptr-deref in btrfs_free_dummy_root+0x21/0x50 [btrfs]
      Read of size 8 at addr 000000000000002c by task insmod/258926
    
      CPU: 2 PID: 258926 Comm: insmod Tainted: G        W          6.1.0-rc2+ #5
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1.fc33 04/01/2014
      Call Trace:
       <TASK>
       dump_stack_lvl+0x34/0x44
       kasan_report+0xb7/0x140
       kasan_check_range+0x145/0x1a0
       btrfs_free_dummy_root+0x21/0x50 [btrfs]
       btrfs_test_free_space_cache+0x1a8c/0x1add [btrfs]
       btrfs_run_sanity_tests+0x65/0x80 [btrfs]
       init_btrfs_fs+0xec/0x154 [btrfs]
       do_one_initcall+0x87/0x2a0
       do_init_module+0xdf/0x320
       load_module+0x3006/0x3390
       __do_sys_finit_module+0x113/0x1b0
       do_syscall_64+0x35/0x80
     entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    Fixes: aaedb55b ("Btrfs: add tests for btrfs_get_extent")
    CC: stable@vger.kernel.org # 4.9+
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    9b2f2034
btrfs-tests.c 7.22 KB