From fe740dcac8b065e4d52674b84cd3ff4e65959442 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Mon, 2 May 2022 18:49:43 -0600 Subject: [PATCH] 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 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- utils/genrandconfig | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/utils/genrandconfig b/utils/genrandconfig index 70af84f002..8ed2783a6d 100755 --- a/utils/genrandconfig +++ b/utils/genrandconfig @@ -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