random: properly align get_random_int_hash
PATCH 1/1 random: properly align get_random_int_hash
get_random_long() reads from the get_random_int_hash array using an unsigned long pointer. For this code to be guaranteed correct on all architectures, the array must be aligned to an unsigned long boundary.
Signed-off-by Eric Biggers <[email protected]>
--- drivers/char/random.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/char/random.c +3 -1
@@ -1792,13 +1792,15 @@ int random_int_secret_init(void)return 0 ; } +static DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash) +__aligned(sizeof(unsigned long)) ; +/* * Get a random word for internal kernel use only. Similar to urandom but * with the goal of minimal entropy pool depletion. As a result, the random * value is not cryptographically secure but for several uses the cost of * depleting entropy is too high */ -static DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash);unsigned int get_random_int (void ) {__u32 *hash;
Signature · 1 line
2.7.4
Quoted 5 lines · Eric Biggers
get_random_long()reads from theget_random_int_hasharray using an unsigned long pointer. For this code to be guaranteed correct on all architectures, the array must be aligned to an unsigned long boundary.Signed-off-by Eric Biggers <[email protected]>
Thanks, applied.
- Ted