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>