[U-Boot] [PATCH] x86: zImage: avoid potential NULL dereference

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Apr 15 13:58:55 UTC 2017


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 at 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



More information about the U-Boot mailing list