mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
NetworkPkg: Update PXE driver to check for NULL pointer before use it.
This patch is to fix the issue that dereferencing of "This" (EFI_LOAD_FILE_PROTOCOL) in EfiPxeLoadFile() is happening before the NULL check. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Sriram Subramanian <sriram-s@hpe.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
This commit is contained in:
parent
9d1c98e699
commit
bee14e9ebc
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
This implementation of EFI_PXE_BASE_CODE_PROTOCOL and EFI_LOAD_FILE_PROTOCOL.
|
This implementation of EFI_PXE_BASE_CODE_PROTOCOL and EFI_LOAD_FILE_PROTOCOL.
|
||||||
|
|
||||||
Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -2349,27 +2349,23 @@ EfiPxeLoadFile (
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_STATUS MediaStatus;
|
EFI_STATUS MediaStatus;
|
||||||
|
|
||||||
if (FilePath == NULL || !IsDevicePathEnd (FilePath)) {
|
if (This == NULL || BufferSize == NULL || FilePath == NULL || !IsDevicePathEnd (FilePath)) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Only support BootPolicy
|
||||||
|
//
|
||||||
|
if (!BootPolicy) {
|
||||||
|
return EFI_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
VirtualNic = PXEBC_VIRTUAL_NIC_FROM_LOADFILE (This);
|
VirtualNic = PXEBC_VIRTUAL_NIC_FROM_LOADFILE (This);
|
||||||
Private = VirtualNic->Private;
|
Private = VirtualNic->Private;
|
||||||
PxeBc = &Private->PxeBc;
|
PxeBc = &Private->PxeBc;
|
||||||
UsingIpv6 = FALSE;
|
UsingIpv6 = FALSE;
|
||||||
Status = EFI_DEVICE_ERROR;
|
Status = EFI_DEVICE_ERROR;
|
||||||
|
|
||||||
if (This == NULL || BufferSize == NULL) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Only support BootPolicy
|
|
||||||
//
|
|
||||||
if (!BootPolicy) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check media status before PXE start
|
// Check media status before PXE start
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user