ShellParametersProtocol - remove parsing from within quoted parameters.

Pci - Add missing enumeration in switch statement.
For - Verify parameter before dereferencing.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11511 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2011-04-07 17:12:12 +00:00
parent b97a8d3586
commit d8f8021cbe
3 changed files with 27 additions and 24 deletions

View File

@ -69,9 +69,7 @@ GetNextParameter(
if ((*Walker)[0] == L'\"') {
NextDelim = NULL;
for (TempLoc = *Walker + 1 ; TempLoc != NULL && *TempLoc != CHAR_NULL ; TempLoc++) {
if (*TempLoc == L'^' && *(TempLoc+1) == L'^') {
TempLoc++;
} else if (*TempLoc == L'^' && *(TempLoc+1) == L'\"') {
if (*TempLoc == L'^' && *(TempLoc+1) == L'\"') {
TempLoc++;
} else if (*TempLoc == L'\"') {
NextDelim = TempLoc;
@ -96,10 +94,7 @@ GetNextParameter(
*Walker = NULL;
}
for (TempLoc = *TempParameter ; TempLoc != NULL && *TempLoc != CHAR_NULL ; TempLoc++) {
if ((*TempLoc == L'^' && *(TempLoc+1) == L'^')
|| (*TempLoc == L'^' && *(TempLoc+1) == L'|')
|| (*TempLoc == L'^' && *(TempLoc+1) == L'\"')
){
if (*TempLoc == L'^' && *(TempLoc+1) == L'\"') {
CopyMem(TempLoc, TempLoc+1, StrSize(TempLoc) - sizeof(TempLoc[0]));
}
}
@ -123,9 +118,7 @@ GetNextParameter(
for (NextDelim = *TempParameter ; NextDelim != NULL && *NextDelim != CHAR_NULL ; NextDelim++) {
if (*NextDelim == L'^' && *(NextDelim+1) == L'^') {
CopyMem(NextDelim, NextDelim+1, StrSize(NextDelim) - sizeof(NextDelim[0]));
}/* else if (*NextDelim == L'^') {
*NextDelim = L' ';
}*/
}
}
while ((*TempParameter)[StrLen(*TempParameter)-1] == L' ') {
(*TempParameter)[StrLen(*TempParameter)-1] = CHAR_NULL;