mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 18:19:28 +09:00
zram: protect sysfs handler from invalid memory access
commit 5863e10b44 upstream.
Use zram->init_lock to protect access to zram->meta, otherwise it
may cause invalid memory access if zram->meta has been freed by
zram_reset_device().
This issue may be triggered by:
Thread 1:
while true; do cat mem_used_total; done
Thread 2:
while true; do echo 8M > disksize; echo 1 > reset; done
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
408fd68717
commit
c181b46430
@@ -188,8 +188,10 @@ static ssize_t mem_used_total_show(struct device *dev,
|
||||
struct zram *zram = dev_to_zram(dev);
|
||||
struct zram_meta *meta = zram->meta;
|
||||
|
||||
down_read(&zram->init_lock);
|
||||
if (zram->init_done)
|
||||
val = zs_get_total_size_bytes(meta->mem_pool);
|
||||
up_read(&zram->init_lock);
|
||||
|
||||
return sprintf(buf, "%llu\n", val);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user