summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/UefiPxeBcDxe
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2018-01-09 15:08:57 +0800
committerFu Siyuan <siyuan.fu@intel.com>2018-01-15 18:02:01 +0800
commitcf9ff46b088a1df9c8ab81f31ef9606826ca7977 (patch)
treebffb5bdeeb626aadbbe9b4f300935a2090915ab5 /NetworkPkg/UefiPxeBcDxe
parentd02a848e3246213edddb69cfb2360830eb058ab3 (diff)
downloadedk2-cf9ff46b088a1df9c8ab81f31ef9606826ca7977.tar.gz
edk2-cf9ff46b088a1df9c8ab81f31ef9606826ca7977.tar.bz2
edk2-cf9ff46b088a1df9c8ab81f31ef9606826ca7977.zip
NetworkPkg: Fix incorrect parameter check in PXE.Mtftp() function.
According to UEFI spec, the PXE.Mtftp() should return invalid parameter if the BufferPtr parameter was NULL and the DontUseBuffer parameter was FALSE. The DontUseBuffer is only used when perform MTFTP/TFTP read operation. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Diffstat (limited to 'NetworkPkg/UefiPxeBcDxe')
-rw-r--r--NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
index 93f3bfa5ba..9068e0686c 100644
--- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
+++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
@@ -855,11 +855,19 @@ EfiPxeBcMtftp (
(Filename == NULL) ||
(BufferSize == NULL) ||
(ServerIp == NULL) ||
- ((BufferPtr == NULL) && DontUseBuffer) ||
((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {
return EFI_INVALID_PARAMETER;
}
+ if (Operation == EFI_PXE_BASE_CODE_TFTP_READ_FILE ||
+ Operation == EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY ||
+ Operation == EFI_PXE_BASE_CODE_MTFTP_READ_FILE ||
+ Operation == EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY) {
+ if (BufferPtr == NULL && !DontUseBuffer) {
+ return EFI_INVALID_PARAMETER;
+ }
+ }
+
Config = NULL;
Status = EFI_DEVICE_ERROR;
Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);