MdeModulePkg CapsuleApp: Check Arg count for -P GET option

Also add help info for CapsuleApp -P GET option.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
Star Zeng 2018-07-11 16:35:02 +08:00
parent a10def9165
commit 5410502f6d
1 changed files with 15 additions and 4 deletions

View File

@ -740,7 +740,8 @@ PrintUsage (
Print(L" which is defined in UEFI specification.\n");
Print(L" -C: Clear capsule report variable (EFI_CAPSULE_REPORT_GUID),\n");
Print(L" which is defined in UEFI specification.\n");
Print(L" -P: Dump UEFI FMP protocol info.\n");
Print(L" -P: Dump UEFI FMP protocol info, or get image with specified\n");
Print(L" ImageTypeId and index to a file if 'GET' option is used.\n");
Print(L" -E: Dump UEFI ESRT table info.\n");
Print(L" -G: Convert a BMP file to be an UX capsule,\n");
Print(L" according to Windows Firmware Update document\n");
@ -820,7 +821,15 @@ UefiMain (
DumpFmpData();
}
if (Argc >= 3) {
if (StrCmp(Argv[2], L"GET") == 0) {
if (StrCmp(Argv[2], L"GET") != 0) {
Print(L"CapsuleApp: Unrecognized option(%s).\n", Argv[2]);
return EFI_UNSUPPORTED;
} else {
if (Argc != 7) {
Print(L"CapsuleApp: Incorrect parameter count.\n");
return EFI_UNSUPPORTED;
}
EFI_GUID ImageTypeId;
UINTN ImageIndex;
//
@ -832,9 +841,11 @@ UefiMain (
return EFI_INVALID_PARAMETER;
}
ImageIndex = StrDecimalToUintn(Argv[4]);
if (StrCmp(Argv[5], L"-O") == 0) {
DumpFmpImage(&ImageTypeId, ImageIndex, Argv[6]);
if (StrCmp(Argv[5], L"-O") != 0) {
Print(L"CapsuleApp: NO output file name.\n");
return EFI_UNSUPPORTED;
}
DumpFmpImage(&ImageTypeId, ImageIndex, Argv[6]);
}
}
return EFI_SUCCESS;