fgets() returns a pointer to the string on success, or NULL otherwise but the current configuration code ignores this, producing the following warning on some systems: scripts/kconfig/conf.c: In function ‘conf_askvalue’: scripts/kconfig/conf.c:105: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result scripts/kconfig/conf.c: In function ‘conf_choice’: cripts/kconfig/conf.c:307: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result Use the result to ensure that on error, the linebuffer is terminated at the first entry. Signed-off-by: Ben Dooks <ben-linux@xxxxxxxxx> --- scripts/kconfig/conf.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 9960d1c..83c5e24 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c @@ -78,6 +78,7 @@ static void check_stdin(void) static int conf_askvalue(struct symbol *sym, const char *def) { enum symbol_type type = sym_get_type(sym); + char *r; if (!sym_has_value(sym)) printf(_("(NEW) ")); @@ -102,7 +103,9 @@ static int conf_askvalue(struct symbol *sym, const char *def) check_stdin(); case ask_all: fflush(stdout); - fgets(line, 128, stdin); + r = fgets(line, 128, stdin); + if (!r) + line[0] = '\0'; return 1; default: break; @@ -259,6 +262,7 @@ static int conf_choice(struct menu *menu) while (1) { int cnt, def; + char *r; printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu))); def_sym = sym_get_choice_value(sym); @@ -304,7 +308,9 @@ static int conf_choice(struct menu *menu) check_stdin(); case ask_all: fflush(stdout); - fgets(line, 128, stdin); + r = fgets(line, 128, stdin); + if (!r) + line[0] = '\0'; strip(line); if (line[0] == '?') { print_help(menu); -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html