ShellPkg: add array index check for shell delay option

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>
This commit is contained in:
Zhichao Gao 2019-02-18 16:28:09 +08:00 committed by Liming Gao
parent e8959f8100
commit d3912eb99e
1 changed files with 6 additions and 2 deletions

View File

@ -1,7 +1,7 @@
/** @file
This is THE shell (application)
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2013-2014 Hewlett-Packard Development Company, L.P.<BR>
Copyright 2015-2018 Dell Technologies.<BR>
This program and the accompanying materials
@ -1002,7 +1002,11 @@ ProcessCommandLine(
) == 0) {
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay = TRUE;
// Check for optional delay value following "-delay"
if ((LoopVar + 1) >= gEfiShellParametersProtocol->Argc) {
DelayValueStr = NULL;
} else {
DelayValueStr = gEfiShellParametersProtocol->Argv[LoopVar + 1];
}
if (DelayValueStr != NULL){
if (*DelayValueStr == L':') {
DelayValueStr++;