lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230217065246.31641-1-rdunlap@infradead.org>
Date:   Thu, 16 Feb 2023 22:52:46 -0800
From:   Randy Dunlap <rdunlap@...radead.org>
To:     linux-kernel@...r.kernel.org
Cc:     Randy Dunlap <rdunlap@...radead.org>,
        Masahiro Yamada <masahiroy@...nel.org>,
        linux-kbuild@...r.kernel.org
Subject: [PATCH] kconfig: save the KCONFIG_SEED value in the config file

Save (print) the randconfig seed value in the kernel .config file.
This enables someone to see easily that the .config file is a
randconfig file.

It also allows the randconfig file to be recreated by using the
KCONFIG_SEED environment variable, as long as KCONFIG_PROBABILITY
was not specified (the default probability values were used) and
as long as the file was not edited.

Signed-off-by: Randy Dunlap <rdunlap@...radead.org>
Cc: Masahiro Yamada <masahiroy@...nel.org>
Cc: linux-kbuild@...r.kernel.org
---
 scripts/kconfig/conf.c     |    3 +++
 scripts/kconfig/confdata.c |    2 ++
 scripts/kconfig/lkc.h      |    2 ++
 3 files changed, 7 insertions(+)

diff -- a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -83,6 +83,8 @@ static void xfgets(char *str, int size,
 		printf("%s", str);
 }
 
+unsigned int rand_seed;
+
 static void set_randconfig_seed(void)
 {
 	unsigned int seed;
@@ -109,6 +111,7 @@ static void set_randconfig_seed(void)
 		seed = (now.tv_sec + 1) * (now.tv_usec + 1);
 	}
 
+	rand_seed = seed;
 	printf("KCONFIG_SEED=0x%X\n", seed);
 	srand(seed);
 }
diff -- a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -621,6 +621,8 @@ static void conf_write_heading(FILE *fp,
 		cs->decoration);
 
 	fprintf(fp, "%s %s\n", cs->decoration, rootmenu.prompt->text);
+	if (rand_seed)
+		fprintf(fp, "%s KCONFIG_SEED=0x%X\n", cs->decoration, rand_seed);
 
 	fprintf(fp, "%s\n", cs->postfix);
 }
diff -- a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -43,6 +43,8 @@ const char *zconf_curname(void);
 const char *conf_get_configname(void);
 void set_all_choice_values(struct symbol *csym);
 
+extern unsigned int rand_seed;
+
 /* confdata.c and expr.c */
 static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
 {

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ