pointer verification (not NULL) and buffer overrun fixes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11459 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -86,7 +86,17 @@ ShellCommandRunEndFor (
|
||||
Found = MoveToTag(GetPreviousNode, L"for", L"endfor", NULL, ShellCommandGetCurrentScriptFile(), FALSE, FALSE, FALSE);
|
||||
|
||||
if (!Found) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"For", L"EndFor", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"For",
|
||||
L"EndFor",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_NOT_FOUND);
|
||||
}
|
||||
return (SHELL_SUCCESS);
|
||||
@ -305,7 +315,16 @@ ShellCommandRunFor (
|
||||
// Make sure that an End exists.
|
||||
//
|
||||
if (!MoveToTag(GetNextNode, L"endfor", L"for", NULL, CurrentScriptFile, TRUE, TRUE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"EndFor", L"For", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"EndFor",
|
||||
L"For",
|
||||
CurrentScriptFile->CurrentCommand!=NULL
|
||||
?CurrentScriptFile->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,17 @@ ShellCommandRunGoto (
|
||||
// Check forwards and then backwards for a label...
|
||||
//
|
||||
if (!MoveToTag(GetNextNode, L"endfor", L"for", CompareString, ShellCommandGetCurrentScriptFile(), FALSE, FALSE, TRUE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, CompareString, L"Goto", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
CompareString,
|
||||
L"Goto",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
}
|
||||
FreePool(CompareString);
|
||||
|
@ -844,7 +844,17 @@ ShellCommandRunIf (
|
||||
// Make sure that an End exists.
|
||||
//
|
||||
if (!MoveToTag(GetNextNode, L"endif", L"if", NULL, ShellCommandGetCurrentScriptFile(), TRUE, TRUE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"EnfIf", L"If", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"EnfIf",
|
||||
L"If",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
@ -983,16 +993,46 @@ ShellCommandRunElse (
|
||||
|
||||
|
||||
if (!MoveToTag(GetPreviousNode, L"if", L"endif", NULL, ShellCommandGetCurrentScriptFile(), FALSE, TRUE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"If", L"Else", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"If",
|
||||
L"Else",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
if (!MoveToTag(GetPreviousNode, L"if", L"else", NULL, ShellCommandGetCurrentScriptFile(), FALSE, TRUE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"If", L"Else", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"If",
|
||||
L"Else",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
if (!MoveToTag(GetNextNode, L"endif", L"if", NULL, ShellCommandGetCurrentScriptFile(), FALSE, FALSE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"EndIf", "Else", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"EndIf",
|
||||
"Else",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
@ -1025,7 +1065,17 @@ ShellCommandRunEndIf (
|
||||
}
|
||||
|
||||
if (!MoveToTag(GetPreviousNode, L"if", L"endif", NULL, ShellCommandGetCurrentScriptFile(), FALSE, TRUE, FALSE)) {
|
||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SYNTAX_NO_MATCHING), gShellLevel1HiiHandle, L"If", L"EndIf", ShellCommandGetCurrentScriptFile()->CurrentCommand->Line);
|
||||
ShellPrintHiiEx(
|
||||
-1,
|
||||
-1,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_SYNTAX_NO_MATCHING),
|
||||
gShellLevel1HiiHandle,
|
||||
L"If",
|
||||
L"EndIf",
|
||||
ShellCommandGetCurrentScriptFile()!=NULL
|
||||
&&ShellCommandGetCurrentScriptFile()->CurrentCommand!=NULL
|
||||
?ShellCommandGetCurrentScriptFile()->CurrentCommand->Line:0);
|
||||
return (SHELL_DEVICE_ERROR);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user