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.g...@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);
 }
-- 
2.11.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to