kbuild warning fixes
couple of fixes to deal with the unused result of fgets().
note sure if they are the best, but they do fix the warnings without totally throwing the result away.
PATCH 1/1 kbuild: kallsysms: throw away result of fgets()
fgets() is being used to skip a line, so throw the result away to remove the following warning:
scripts/kallsyms.c: In function ‘read_symbol’:scripts/kallsyms.c:112: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
tmp-fix-kallsysms
--- scripts/kallsyms.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
scripts/kallsyms.c +5 -1
@@ -109,7 +109,11 @@ static int read_symbol(FILE *in, struct sym_entry *s)if (rc !=3 ) {if (rc !=EOF ) {/* skip line */ -fgets (str,500 , in); +char *tmp =fgets (str,500 , in); + +/* shut unused-result warning up */ +if (!tmp) + str[0 ] ='\0' ; }return -1 ; }
Signature · 1 line
1.6.3.3
PATCH 190/190 kbuild: fix unused return value from fgets()
In reply to Ben Dooksfgets() 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.
--- scripts/kconfig/conf.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
scripts/kconfig/conf.c +8 -2
@@ -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);
Signature · 1 line
1.6.3.3
PATCH 1/1 kbuild: kallsysms: throw away result of fgets()
In reply to Ben Dooksfgets() is being used to skip a line, so throw the result away to remove the following warning:
scripts/kallsyms.c: In function ‘read_symbol’:scripts/kallsyms.c:112: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
--- scripts/kallsyms.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
scripts/kallsyms.c +5 -1
@@ -109,7 +109,11 @@ static int read_symbol(FILE *in, struct sym_entry *s)if (rc !=3 ) {if (rc !=EOF ) {/* skip line */ -fgets (str,500 , in); +char *tmp =fgets (str,500 , in); + +/* shut unused-result warning up */ +if (!tmp) + str[0 ] ='\0' ; }return -1 ; }
Signature · 1 line
1.6.3.3