]> git.baikalelectronics.ru Git - kernel.git/commit
vt: fix memory overlapping when deleting chars in the buffer
authorYangxi Xiang <xyangxi5@gmail.com>
Tue, 28 Jun 2022 09:33:22 +0000 (17:33 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Jul 2022 19:24:42 +0000 (21:24 +0200)
commit1c204be84c84be4f9d1cf961a41741a268842480
tree5d83a1d99ca248ce989cba63dcdbd46b11996fd6
parent53e2698617a90463609fd148980477e139e7b6fa
vt: fix memory overlapping when deleting chars in the buffer

commit 3f646163f55ea4e50155effc3c915ba7f24d900f upstream.

A memory overlapping copy occurs when deleting a long line. This memory
overlapping copy can cause data corruption when scr_memcpyw is optimized
to memcpy because memcpy does not ensure its behavior if the destination
buffer overlaps with the source buffer. The line buffer is not always
broken, because the memcpy utilizes the hardware acceleration, whose
result is not deterministic.

Fix this problem by using replacing the scr_memcpyw with scr_memmovew.

Fixes: 65889cdf5a5a ("tty vt: Fix line garbage in virtual console on command line edition")
Cc: stable <stable@kernel.org>
Signed-off-by: Yangxi Xiang <xyangxi5@gmail.com>
Link: https://lore.kernel.org/r/20220628093322.5688-1-xyangxi5@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vt.c