random: document crng_fast_key_erasure() destination possibility
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 18 Apr 2022 18:57:31 +0000 (20:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 May 2022 07:29:12 +0000 (09:29 +0200)
commit4179671f496bdc26d2c85ffb3cca16f297f6d852
treea130d3b618bdab050672510d1c50179a91b0c897
parent8b373c113a4caccfb99579f16d2faa63b251737b
random: document crng_fast_key_erasure() destination possibility

commit 8717627d6ac53251ee012c3c7aca392f29f38a42 upstream.

This reverts 35a33ff3807d ("random: use memmove instead of memcpy for
remaining 32 bytes"), which was made on a totally bogus basis. The thing
it was worried about overlapping came from the stack, not from one of
its arguments, as Eric pointed out.

But the fact that this confusion even happened draws attention to the
fact that it's a bit non-obvious that the random_data parameter can
alias chacha_state, and in fact should do so when the caller can't rely
on the stack being cleared in a timely manner. So this commit documents
that.

Reported-by: Eric Biggers <ebiggers@kernel.org>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/random.c