• Vincent Whitchurch's avatar
    ubifs: Fix memory leak of bud->log_hash · f4a04c97
    Vincent Whitchurch authored
    Ensure that the allocated bud->log_hash (if any) is freed in all cases
    when the bud itself is freed, to fix this leak caught by kmemleak:
    
     # keyctl add logon foo:bar data @s
     # echo clear > /sys/kernel/debug/kmemleak
     # mount -t ubifs /dev/ubi0_0 mnt -o auth_hash_name=sha256,auth_key=foo:bar
     # echo a > mnt/x
     # umount mnt
     # mount -t ubifs /dev/ubi0_0 mnt -o auth_hash_name=sha256,auth_key=foo:bar
     # umount mnt
     # sleep 5
     # echo scan > /sys/kernel/debug/kmemleak
     # echo scan > /sys/kernel/debug/kmemleak
     # cat /sys/kernel/debug/kmemleak
     unreferenced object 0xff... (size 128):
       comm "mount"
       backtrace:
         __kmalloc
         __ubifs_hash_get_desc+0x5d/0xe0 ubifs
         ubifs_replay_journal
         ubifs_mount
         ...
    
    Fixes: da8ef65f ("ubifs: Authenticate replayed journal")
    Signed-off-by: default avatarVincent Whitchurch <vincent.whitchurch@axis.com>
    Reviewed-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    f4a04c97
super.c 64.7 KB