kconfig: revert change that was not needed for -Wformat-security
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 28 Jan 2018 09:41:23 +0000 (18:41 +0900)
committerTom Rini <trini@konsulko.com>
Mon, 29 Jan 2018 17:50:13 +0000 (12:50 -0500)
Recent GCC versions warn if the format string is not a literal
because the compiler cannot check the argument validity at compile
time.

Commit 192bc6948b02 ("Fix GCC format-security errors and convert
sprintfs.") blindly replaced sprintf() with strcpy(), including
many cases where the format parameter is a string literal.

For the kconfig change:

    sprintf(header, "   ");

..., here the format parameter is a string literal "   ", so it is
definitely equivalent to:

    strcpy(header, "   ");

Of course, if the 'header' did not have enough length for containing
"   ", it would be a security problem, but another problem.  (in this
case, the 'header' is 4 byte length buffer, so it is not a problem at
all.)

The kconfig code is kept as synced with Linux as possible, but this
change made the code out-of-sync for nothing.  Just reverting.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/kconfig/mconf.c

index 953d5c75e5de76bd23c2158babfcd491195064e9..315ce2c7cb9dbc48b545329ee144c27e569d5c81 100644 (file)
@@ -379,7 +379,7 @@ static void update_text(char *buf, size_t start, size_t end, void *_data)
                                data->targets[k] = pos->target;
                                k++;
                        } else {
-                               strcpy(header, "   ");
+                               sprintf(header, "   ");
                        }
 
                        memcpy(buf + pos->offset, header, sizeof(header) - 1);