MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue
To avoid potential NULL pointer dereference issue. Initialize them at the beginning of the function. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao Wu <hao.a.wu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chen A Chen <chen.a.chen@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
		@@ -916,6 +916,7 @@ UefiMain (
 | 
				
			|||||||
  EFI_GUID                      ImageTypeId;
 | 
					  EFI_GUID                      ImageTypeId;
 | 
				
			||||||
  UINTN                         ImageIndex;
 | 
					  UINTN                         ImageIndex;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  BlockDescriptors  = NULL;
 | 
				
			||||||
  MapFsStr          = NULL;
 | 
					  MapFsStr          = NULL;
 | 
				
			||||||
  CapsuleNum        = 0;
 | 
					  CapsuleNum        = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -798,6 +798,8 @@ DumpCapsuleFromDisk (
 | 
				
			|||||||
  DirHandle       = NULL;
 | 
					  DirHandle       = NULL;
 | 
				
			||||||
  FileHandle      = NULL;
 | 
					  FileHandle      = NULL;
 | 
				
			||||||
  Index           = 0;
 | 
					  Index           = 0;
 | 
				
			||||||
 | 
					  FileInfoBuffer  = NULL;
 | 
				
			||||||
 | 
					  FileInfo        = NULL;
 | 
				
			||||||
  FileCount       = 0;
 | 
					  FileCount       = 0;
 | 
				
			||||||
  NoFile          = FALSE;
 | 
					  NoFile          = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -971,6 +973,9 @@ DumpProvisionedCapsule (
 | 
				
			|||||||
  ShellProtocol = GetShellProtocol ();
 | 
					  ShellProtocol = GetShellProtocol ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Index             = 0;
 | 
					  Index             = 0;
 | 
				
			||||||
 | 
					  CapsuleDataPtr64  = NULL;
 | 
				
			||||||
 | 
					  BootNext          = NULL;
 | 
				
			||||||
 | 
					  ShellProtocol     = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //
 | 
					  //
 | 
				
			||||||
  // Dump capsule provisioned on Memory
 | 
					  // Dump capsule provisioned on Memory
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -151,9 +151,14 @@ DumpAllEfiSysPartition (
 | 
				
			|||||||
  UINTN                      NumberEfiSystemPartitions;
 | 
					  UINTN                      NumberEfiSystemPartitions;
 | 
				
			||||||
  EFI_SHELL_PROTOCOL         *ShellProtocol;
 | 
					  EFI_SHELL_PROTOCOL         *ShellProtocol;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ShellProtocol = GetShellProtocol ();
 | 
					 | 
				
			||||||
  NumberEfiSystemPartitions = 0;
 | 
					  NumberEfiSystemPartitions = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ShellProtocol = GetShellProtocol ();
 | 
				
			||||||
 | 
					  if (ShellProtocol == NULL) {
 | 
				
			||||||
 | 
					    Print (L"Get Shell Protocol Fail\n");;
 | 
				
			||||||
 | 
					    return ;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print (L"EFI System Partition list:\n");
 | 
					  Print (L"EFI System Partition list:\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gBS->LocateHandleBuffer (
 | 
					  gBS->LocateHandleBuffer (
 | 
				
			||||||
@@ -421,7 +426,13 @@ GetUpdateFileSystem (
 | 
				
			|||||||
  EFI_BOOT_MANAGER_LOAD_OPTION    NewOption;
 | 
					  EFI_BOOT_MANAGER_LOAD_OPTION    NewOption;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  MappedDevicePath = NULL;
 | 
					  MappedDevicePath = NULL;
 | 
				
			||||||
 | 
					  BootOptionBuffer = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ShellProtocol = GetShellProtocol ();
 | 
					  ShellProtocol = GetShellProtocol ();
 | 
				
			||||||
 | 
					  if (ShellProtocol == NULL) {
 | 
				
			||||||
 | 
					    Print (L"Get Shell Protocol Fail\n");;
 | 
				
			||||||
 | 
					    return EFI_NOT_FOUND;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //
 | 
					  //
 | 
				
			||||||
  // 1. If Fs is not assigned and there are capsule provisioned before,
 | 
					  // 1. If Fs is not assigned and there are capsule provisioned before,
 | 
				
			||||||
@@ -468,7 +479,9 @@ GetUpdateFileSystem (
 | 
				
			|||||||
  // 2. Get EFI system partition form boot options.
 | 
					  // 2. Get EFI system partition form boot options.
 | 
				
			||||||
  //
 | 
					  //
 | 
				
			||||||
  BootOptionBuffer = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);
 | 
					  BootOptionBuffer = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);
 | 
				
			||||||
  if (BootOptionCount == 0 && Map == NULL) {
 | 
					  if ( (BootOptionBuffer == NULL) ||
 | 
				
			||||||
 | 
					       (BootOptionCount == 0 && Map == NULL)
 | 
				
			||||||
 | 
					     ) {
 | 
				
			||||||
    return EFI_NOT_FOUND;
 | 
					    return EFI_NOT_FOUND;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user