Skip to content

Commit

Permalink
hwrng: core - Don't use a stack buffer in add_early_randomness()
Browse files Browse the repository at this point in the history
hw_random carefully avoids using a stack buffer except in
add_early_randomness().  This causes a crash in virtio_rng if
CONFIG_VMAP_STACK=y.

Reported-by: Matt Mullins <[email protected]>
Tested-by: Matt Mullins <[email protected]>
Fixes: d3cc799 ("hwrng: fetch randomness only after device init")
Signed-off-by: Andy Lutomirski <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
amluto authored and herbertx committed Oct 19, 2016
1 parent 1001354 commit 6d4952d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/char/hw_random/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,14 @@ static size_t rng_buffer_size(void)

static void add_early_randomness(struct hwrng *rng)
{
unsigned char bytes[16];
int bytes_read;
size_t size = min_t(size_t, 16, rng_buffer_size());

mutex_lock(&reading_mutex);
bytes_read = rng_get_data(rng, bytes, sizeof(bytes), 1);
bytes_read = rng_get_data(rng, rng_buffer, size, 1);
mutex_unlock(&reading_mutex);
if (bytes_read > 0)
add_device_randomness(bytes, bytes_read);
add_device_randomness(rng_buffer, bytes_read);
}

static inline void cleanup_rng(struct kref *kref)
Expand Down

0 comments on commit 6d4952d

Please sign in to comment.