]> git.baikalelectronics.ru Git - kernel.git/commit
random: use memmove instead of memcpy for remaining 32 bytes
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 13 Apr 2022 23:50:38 +0000 (01:50 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Sat, 16 Apr 2022 10:53:31 +0000 (12:53 +0200)
commit13a2fa4da1003c55aaef6bae5bd7e50315e628b6
tree801251338649869666b8cee5d34d2571b08c60a7
parent9cf5a39c7affa5c4c666bdcce5d2030b921748f7
random: use memmove instead of memcpy for remaining 32 bytes

In order to immediately overwrite the old key on the stack, before
servicing a userspace request for bytes, we use the remaining 32 bytes
of block 0 as the key. This means moving indices 8,9,a,b,c,d,e,f ->
4,5,6,7,8,9,a,b. Since 4 < 8, for the kernel implementations of
memcpy(), this doesn't actually appear to be a problem in practice. But
relying on that characteristic seems a bit brittle. So let's change that
to a proper memmove(), which is the by-the-books way of handling
overlapping memory copies.

Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
drivers/char/random.c