summaryrefslogtreecommitdiff
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.zip
edk2-cf9ff46b088a1df9c8ab81f31ef9606826ca7977.tar.gz
edk2-cf9ff46b088a1df9c8ab81f31ef9606826ca7977.tar.bz2
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 93f3bfa..9068e06 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);