]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
dm flakey: don't corrupt the zero page
authorMikulas Patocka <mpatocka@redhat.com>
Sun, 22 Jan 2023 19:02:57 +0000 (14:02 -0500)
committerMike Snitzer <snitzer@kernel.org>
Wed, 1 Feb 2023 16:35:30 +0000 (11:35 -0500)
commitf50714b57aecb6b3dc81d578e295f86d9c73f078
treec5a886cf224f8a50440b6efe92d6b8323c73971b
parent22c40e134c4c7a828ac09d25a5a8597b1e45c031
dm flakey: don't corrupt the zero page

When we need to zero some range on a block device, the function
__blkdev_issue_zero_pages submits a write bio with the bio vector pointing
to the zero page. If we use dm-flakey with corrupt bio writes option, it
will corrupt the content of the zero page which results in crashes of
various userspace programs. Glibc assumes that memory returned by mmap is
zeroed and it uses it for calloc implementation; if the newly mapped
memory is not zeroed, calloc will return non-zeroed memory.

Fix this bug by testing if the page is equal to ZERO_PAGE(0) and
avoiding the corruption in this case.

Cc: stable@vger.kernel.org
Fixes: a00f5276e266 ("dm flakey: Properly corrupt multi-page bios.")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm-flakey.c