Message ID | 20190506173353.32206-15-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Add qemu_getrandom and ARMv8.5-RNG etc | expand |
On 06/05/2019 19:33, Richard Henderson wrote: > Use a better interface for random numbers than rand * 16. > > Cc: Laurent Vivier <laurent@vivier.eu> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/elfload.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/linux-user/elfload.c b/linux-user/elfload.c > index c1a26021f8..e673f7ea55 100644 > --- a/linux-user/elfload.c > +++ b/linux-user/elfload.c > @@ -7,6 +7,7 @@ > #include "qemu.h" > #include "disas/disas.h" > #include "qemu/path.h" > +#include "qemu/guest-random.h" > > #ifdef _ARCH_PPC64 > #undef ARCH_DLINFO > @@ -1883,12 +1884,9 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc, > } > > /* > - * Generate 16 random bytes for userspace PRNG seeding (not > - * cryptically secure but it's not the aim of QEMU). > + * Generate 16 random bytes for userspace PRNG seeding. > */ > - for (i = 0; i < 16; i++) { > - k_rand_bytes[i] = rand(); > - } > + qemu_guest_getrandom_nofail(k_rand_bytes, sizeof(k_rand_bytes)); > if (STACK_GROWS_DOWN) { > sp -= 16; > u_rand_bytes = sp; > Reviewed-by: Laurent Vivier <lvivier@redhat.com>
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index c1a26021f8..e673f7ea55 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -7,6 +7,7 @@ #include "qemu.h" #include "disas/disas.h" #include "qemu/path.h" +#include "qemu/guest-random.h" #ifdef _ARCH_PPC64 #undef ARCH_DLINFO @@ -1883,12 +1884,9 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc, } /* - * Generate 16 random bytes for userspace PRNG seeding (not - * cryptically secure but it's not the aim of QEMU). + * Generate 16 random bytes for userspace PRNG seeding. */ - for (i = 0; i < 16; i++) { - k_rand_bytes[i] = rand(); - } + qemu_guest_getrandom_nofail(k_rand_bytes, sizeof(k_rand_bytes)); if (STACK_GROWS_DOWN) { sp -= 16; u_rand_bytes = sp;