diff options
author | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-04-07 17:12:12 +0000 |
---|---|---|
committer | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-04-07 17:12:12 +0000 |
commit | d8f8021cbe89187c443e6a9ee89eb3edc8248ab4 (patch) | |
tree | f9839a4926ff36aea907d79f14d03c8b5004a320 /ShellPkg | |
parent | b97a8d3586266504c6140ffd111a6d80ce471225 (diff) | |
download | edk2-d8f8021cbe89187c443e6a9ee89eb3edc8248ab4.zip edk2-d8f8021cbe89187c443e6a9ee89eb3edc8248ab4.tar.gz edk2-d8f8021cbe89187c443e6a9ee89eb3edc8248ab4.tar.bz2 |
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
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Application/Shell/ShellParametersProtocol.c | 13 | ||||
-rw-r--r-- | ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c | 23 | ||||
-rw-r--r-- | ShellPkg/Library/UefiShellLevel1CommandsLib/For.c | 15 |
3 files changed, 27 insertions, 24 deletions
diff --git a/ShellPkg/Application/Shell/ShellParametersProtocol.c b/ShellPkg/Application/Shell/ShellParametersProtocol.c index b90a2c3..5d2792b 100644 --- a/ShellPkg/Application/Shell/ShellParametersProtocol.c +++ b/ShellPkg/Application/Shell/ShellParametersProtocol.c @@ -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;
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c index c6e4a32..65effc7 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c @@ -2781,6 +2781,9 @@ PciExplainData ( );
CapPtr = ConfigSpace->NonCommon.CardBus.CapabilitiesPtr;
break;
+ case PciUndefined:
+ default:
+ break;
}
//
// If Status bit4 is 1, dump or explain capability structure
@@ -3405,7 +3408,7 @@ PciExplainCardBusData ( INDEX_OF (&(CardBus->IoBase0)),
Io32Bit ? L" 32 bit" : L" 16 bit",
CardBus->IoBase0 & (Io32Bit ? 0xfffffffc : 0x0000fffc),
- CardBus->IoLimit0 & (Io32Bit ? 0xffffffff : 0x0000ffff) | 0x00000003
+ (CardBus->IoLimit0 & (Io32Bit ? 0xffffffff : 0x0000ffff)) | 0x00000003
);
Io32Bit = (BOOLEAN) (CardBus->IoBase1 & PCI_BIT_0);
@@ -3415,7 +3418,7 @@ PciExplainCardBusData ( INDEX_OF (&(CardBus->IoBase1)),
Io32Bit ? L" 32 bit" : L" 16 bit",
CardBus->IoBase1 & (Io32Bit ? 0xfffffffc : 0x0000fffc),
- CardBus->IoLimit1 & (Io32Bit ? 0xffffffff : 0x0000ffff) | 0x00000003
+ (CardBus->IoLimit1 & (Io32Bit ? 0xffffffff : 0x0000ffff)) | 0x00000003
);
//
@@ -4690,14 +4693,16 @@ PciExplainPciExpress ( //
Print (L"\n%HStart dumping PCIex extended configuration space (0x100 - 0xFFF).%N\n\n");
- DumpHex (
- 2,
- 0x100,
- ExtendRegSize,
- (VOID *) (ExRegBuffer)
- );
+ if (ExRegBuffer != NULL) {
+ DumpHex (
+ 2,
+ 0x100,
+ ExtendRegSize,
+ (VOID *) (ExRegBuffer)
+ );
- FreePool ((VOID *) ExRegBuffer);
+ FreePool ((VOID *) ExRegBuffer);
+ }
Done:
return EFI_SUCCESS;
diff --git a/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c b/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c index b8e4805..bc26ed3 100644 --- a/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c +++ b/ShellPkg/Library/UefiShellLevel1CommandsLib/For.c @@ -589,11 +589,16 @@ ShellCommandRunFor ( ASSERT(ArgSet == NULL);
}
- Info = (SHELL_FOR_INFO*)CurrentScriptFile->CurrentCommand->Data;
- if (CurrentScriptFile->CurrentCommand->Reset) {
- Info->CurrentValue = (CHAR16*)Info->Set;
- FirstPass = TRUE;
- CurrentScriptFile->CurrentCommand->Reset = FALSE;
+ if (CurrentScriptFile != NULL && CurrentScriptFile->CurrentCommand != NULL) {
+ Info = (SHELL_FOR_INFO*)CurrentScriptFile->CurrentCommand->Data;
+ if (CurrentScriptFile->CurrentCommand->Reset) {
+ Info->CurrentValue = (CHAR16*)Info->Set;
+ FirstPass = TRUE;
+ CurrentScriptFile->CurrentCommand->Reset = FALSE;
+ }
+ } else {
+ ShellStatus = SHELL_UNSUPPORTED;
+ Info = NULL;
}
if (ShellStatus == SHELL_SUCCESS) {
ASSERT(Info != NULL);
|