On Sat, Apr 15, 2017 at 03:58:55PM +0200, Heinrich Schuchardt wrote: > 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); > }
I think this is a false positive from cppcheck. With env_command_line set to NULL, strstr will return NULL. The only other place we use env_command_line is further on where we alrady have a check. Thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot