
If bootargs is not assigned getenv("bootargs") will return NULL. Some part of the code is checking for this condition. Other parts dereference a possible NULL pointer.
The problem was indicated by cppcheck.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- arch/x86/lib/zimage.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index aafbeb01f9..9b564340a6 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -48,12 +48,14 @@ static void build_command_line(char *command_line, int auto_boot)
command_line[0] = '\0';
- env_command_line = getenv("bootargs"); + env_command_line = getenv("bootargs"); + + if (!env_command_line) + env_command_line = "";
/* set console= argument if we use a serial console */ if (!strstr(env_command_line, "console=")) { if (!strcmp(getenv("stdout"), "serial")) { - /* We seem to use serial console */ sprintf(command_line, "console=ttyS0,%s ", getenv("baudrate")); @@ -63,8 +65,7 @@ static void build_command_line(char *command_line, int auto_boot) if (auto_boot) strcat(command_line, "auto ");
- if (env_command_line) - strcat(command_line, env_command_line); + strcat(command_line, env_command_line);
printf("Kernel command line: "%s"\n", command_line); }