When multiple fields are found in 'for' command return invalid parameters error.

Cc: Jaben Carsey <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <[email protected]>
---
 ShellPkg/Library/UefiShellLevel1CommandsLib/For.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c 
b/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c
index 2ecc5cd..cbf0517 100644
--- a/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c
+++ b/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c
@@ -438,6 +438,11 @@ ShellCommandRunFor (
         gEfiShellParametersProtocol->Argv[2]) == 0) {
       for (LoopVar = 0x3 ; LoopVar < gEfiShellParametersProtocol->Argc ; 
LoopVar++) {
         ASSERT((ArgSet == NULL && ArgSize == 0) || (ArgSet != NULL));
+        if (StrStr (gEfiShellParametersProtocol->Argv[LoopVar], L")") != NULL 
&&
+            (LoopVar + 1) < gEfiShellParametersProtocol->Argc
+           ) {
+          return (SHELL_INVALID_PARAMETER);
+        }
         if (ArgSet == NULL) {
 //        ArgSet = StrnCatGrow(&ArgSet, &ArgSize, L"\"", 0);
         } else {
-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to