diff mbox series

[v4,14/24] linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM

Message ID 20190506173353.32206-15-richard.henderson@linaro.org
State Superseded
Headers show
Series Add qemu_getrandom and ARMv8.5-RNG etc | expand

Commit Message

Richard Henderson May 6, 2019, 5:33 p.m. UTC
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(-)

-- 
2.17.1

Comments

Laurent Vivier May 7, 2019, 2:15 p.m. UTC | #1
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 mbox series

Patch

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;