utils/genrandconfig: use high quality random for KCONFIG_SEED

Internally genrandconfig will use gettimeofday when generating a
KCONFIG_SEED, since autobuild-run executes genrandconfig at the same
time for multiple autobuilder runners this could potentially result
in the same KCONFIG_SEED being generated for those test runs started
at the same time.

To ensure this doesn't happen set the KCONFIG_SEED using the urandom
entropy source.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
James Hilliard 2022-05-02 18:49:43 -06:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 4dd01598c2
commit fe740dcac8

View File

@ -18,6 +18,7 @@
# This script generates a random configuration for testing Buildroot.
from binascii import hexlify
import contextlib
import csv
import os
@ -605,9 +606,13 @@ def gen_config(args):
file=sys.stderr)
return 1
bounded_loop -= 1
subprocess.check_call(["make", "O=%s" % args.outputdir, "-C", args.buildrootdir,
"KCONFIG_PROBABILITY=%d" % randint(1, 20),
"randpackageconfig" if args.toolchains_csv else "randconfig"])
make_rand = [
"make", "O=%s" % args.outputdir, "-C", args.buildrootdir,
"KCONFIG_SEED=0x%s" % hexlify(os.urandom(4)).decode("ascii").upper(),
"KCONFIG_PROBABILITY=%d" % randint(1, 20),
"randpackageconfig" if args.toolchains_csv else "randconfig"
]
subprocess.check_call(make_rand)
if fixup_config(sysinfo, configfile):
break