Re: [PATCH resend 4.9] hw_random: Don't use a stack buffer in add_early_randomness()

From: Andy Lutomirski
Date: Mon Oct 17 2016 - 13:30:47 EST


On Mon, Oct 17, 2016 at 10:17 AM, Stephan Mueller <smueller@xxxxxxxxxx> wrote:
> Am Montag, 17. Oktober 2016, 10:06:27 CEST schrieb Andy Lutomirski:
>
> Hi Andy,
>
>> diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
>> index 9203f2d130c0..340f96e44642 100644
>> --- a/drivers/char/hw_random/core.c
>> +++ b/drivers/char/hw_random/core.c
>> @@ -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);
>
> Shouldn't there be a memset(0) of the rng_buffer at this point to avoid having
> such data lingering in memory?

Sure, but shouldn't that be a separate patch covering the whole hw_crypto core?

--Andy


--
Andy Lutomirski
AMA Capital Management, LLC