]> 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, 30 Jun 2022 15:17:40 +0000 (17:17 +0200)
commit3f646163f55ea4e50155effc3c915ba7f24d900f
tree87de06e2248e3be3b78105091cd9fd760199e36e
parent20e2ad938e190c433f68e76c9171d05c6058d408
vt: fix memory overlapping when deleting chars in the buffer

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