BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1528
Shell delay option without parameters do not check the
index of shell parameter argv. Add index check to avoid
invalid pointer references.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
/** @file\r
This is THE shell (application)\r
\r
/** @file\r
This is THE shell (application)\r
\r
- Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2013-2014 Hewlett-Packard Development Company, L.P.<BR>\r
Copyright 2015-2018 Dell Technologies.<BR>\r
This program and the accompanying materials\r
(C) Copyright 2013-2014 Hewlett-Packard Development Company, L.P.<BR>\r
Copyright 2015-2018 Dell Technologies.<BR>\r
This program and the accompanying materials\r
) == 0) {\r
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay = TRUE;\r
// Check for optional delay value following "-delay"\r
) == 0) {\r
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay = TRUE;\r
// Check for optional delay value following "-delay"\r
- DelayValueStr = gEfiShellParametersProtocol->Argv[LoopVar + 1];\r
+ if ((LoopVar + 1) >= gEfiShellParametersProtocol->Argc) {\r
+ DelayValueStr = NULL;\r
+ } else {\r
+ DelayValueStr = gEfiShellParametersProtocol->Argv[LoopVar + 1];\r
+ }\r
if (DelayValueStr != NULL){\r
if (*DelayValueStr == L':') {\r
DelayValueStr++;\r
if (DelayValueStr != NULL){\r
if (*DelayValueStr == L':') {\r
DelayValueStr++;\r