linux-user: Call qcrypto_init if not using -seed
When not using -seed, we will use the crypto subsystem for random numbers. Reviewed-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
5ebdd77494
commit
a573e9bac6
@ -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,17 +689,26 @@ int main(int argc, char **argv, char **envp)
|
||||
if (seed_optarg == NULL) {
|
||||
seed_optarg = getenv("QEMU_RAND_SEED");
|
||||
}
|
||||
if (seed_optarg != NULL) {
|
||||
unsigned long long seed;
|
||||
{
|
||||
Error *err = NULL;
|
||||
if (seed_optarg != NULL) {
|
||||
unsigned long long seed;
|
||||
|
||||
/* This will go away with the last user of rand(). */
|
||||
if (parse_uint_full(seed_optarg, &seed, 0) != 0) {
|
||||
fprintf(stderr, "Invalid seed number: %s\n", seed_optarg);
|
||||
exit(EXIT_FAILURE);
|
||||
/* This will go away with the last user of rand(). */
|
||||
if (parse_uint_full(seed_optarg, &seed, 0) != 0) {
|
||||
fprintf(stderr, "Invalid seed number: %s\n", seed_optarg);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
srand(seed);
|
||||
|
||||
qemu_guest_random_seed_main(seed_optarg, &err);
|
||||
} else {
|
||||
qcrypto_init(&err);
|
||||
}
|
||||
if (err) {
|
||||
error_reportf_err(err, "cannot initialize crypto: ");
|
||||
exit(1);
|
||||
}
|
||||
srand(seed);
|
||||
|
||||
qemu_guest_random_seed_main(seed_optarg, &error_fatal);
|
||||
}
|
||||
|
||||
target_environ = envlist_to_environ(envlist, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user