2023-08-03 17:12:01

by Yoann Congal

[permalink] [raw]
Subject: [PATCH] kconfig: avoid an infinite loop in oldconfig/syncconfig

Exit on error when asking for value that has an invalid default value
and stdin is closed. Previously, this case would loop.

Signed-off-by: Yoann Congal <[email protected]>
---
scripts/kconfig/conf.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 33d19e419908b..38ff9c81e071d 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -376,6 +376,15 @@ static int conf_string(struct menu *menu)
}
if (def && sym_set_string_value(sym, def))
return 0;
+ else {
+ if (feof(stdin) && !sym_string_valid(sym, sym_get_string_value(sym))) {
+ fprintf(stderr,
+ "Symbol %s has invalid default value and stdin reached EOF\n",
+ sym->name);
+ exit(1);
+ }
+ }
+
}
}

--
2.30.2