• Jiang Liu's avatar
    zram: avoid invalid memory access in zram_exit() · 6030ea9b
    Jiang Liu authored
    Memory for zram->disk object may have already been freed after returning
    from destroy_device(zram), then it's unsafe for zram_reset_device(zram)
    to access zram->disk again.
    
    We can't solve this bug by flipping the order of destroy_device(zram)
    and zram_reset_device(zram), that will cause deadlock issues to the
    zram sysfs handler.
    
    So fix it by holding an extra reference to zram->disk before calling
    destroy_device(zram).
    Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6030ea9b
zram_drv.c 16.4 KB