• Shetty, Harshini X (EXT-Sony Mobile)'s avatar
    dm verity fec: fix memory leak in verity_fec_dtr · 75fa6019
    Shetty, Harshini X (EXT-Sony Mobile) authored
    Fix below kmemleak detected in verity_fec_ctr. output_pool is
    allocated for each dm-verity-fec device. But it is not freed when
    dm-table for the verity target is removed. Hence free the output
    mempool in destructor function verity_fec_dtr.
    
    unreferenced object 0xffffffffa574d000 (size 4096):
      comm "init", pid 1667, jiffies 4294894890 (age 307.168s)
      hex dump (first 32 bytes):
        8e 36 00 98 66 a8 0b 9b 00 00 00 00 00 00 00 00  .6..f...........
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<0000000060e82407>] __kmalloc+0x2b4/0x340
        [<00000000dd99488f>] mempool_kmalloc+0x18/0x20
        [<000000002560172b>] mempool_init_node+0x98/0x118
        [<000000006c3574d2>] mempool_init+0x14/0x20
        [<0000000008cb266e>] verity_fec_ctr+0x388/0x3b0
        [<000000000887261b>] verity_ctr+0x87c/0x8d0
        [<000000002b1e1c62>] dm_table_add_target+0x174/0x348
        [<000000002ad89eda>] table_load+0xe4/0x328
        [<000000001f06f5e9>] dm_ctl_ioctl+0x3b4/0x5a0
        [<00000000bee5fbb7>] do_vfs_ioctl+0x5dc/0x928
        [<00000000b475b8f5>] __arm64_sys_ioctl+0x70/0x98
        [<000000005361e2e8>] el0_svc_common+0xa0/0x158
        [<000000001374818f>] el0_svc_handler+0x6c/0x88
        [<000000003364e9f4>] el0_svc+0x8/0xc
        [<000000009d84cec9>] 0xffffffffffffffff
    
    Fixes: a739ff3f ("dm verity: add support for forward error correction")
    Depends-on: 6f1c819c ("dm: convert to bioset_init()/mempool_init()")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHarshini Shetty <harshini.x.shetty@sony.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    75fa6019
dm-verity-fec.c 20.3 KB