On 06/05/2019 19:33, Richard Henderson wrote:
Cc: Laurent Vivier <laur...@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  linux-user/main.c | 15 +++++++++++++--
  1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/linux-user/main.c b/linux-user/main.c
index 7dfb202e5d..e05aebe4e1 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -39,6 +39,7 @@
  #include "trace/control.h"
  #include "target_elf.h"
  #include "cpu_loop-common.h"
+#include "crypto/init.h"
char *exec_path; @@ -688,8 +689,18 @@ int main(int argc, char **argv, char **envp)
      if (seed_optarg == NULL) {
          seed_optarg = getenv("QEMU_RAND_SEED");
      }
-    if (seed_optarg != NULL) {
-        qemu_guest_random_seed_main(seed_optarg, &error_fatal);
+    {
+        Error *err = NULL;
+        if (seed_optarg != NULL) {
+            qemu_guest_random_seed_main(seed_optarg, &err);
+        } else {
+            /* ??? Assumes qcrypto is only used by qemu_guest_getrandom.  */

perhaps you can add a qemu_guest_random_init() function close to this assumption to call qcrypto_init()? So we will not forget to change this if we use something else in the future.

+            qcrypto_init(&err);
+        }
+        if (err) {
+            error_reportf_err(err, "cannot initialize crypto: ");
+            exit(1);
+        }
      }
target_environ = envlist_to_environ(envlist, NULL);


Thanks,
Laurent

Reply via email to