]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
NetworkPkg: Fix incorrect parameter check in PXE.Mtftp() function.
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcImpl.c
index 93f3bfa5ba8dbf9128440f65193e009a59f0b9c3..9068e0686c5fedd6e3ef3206be573e80edd15b46 100644 (file)
@@ -855,11 +855,19 @@ EfiPxeBcMtftp (
       (Filename == NULL) ||\r
       (BufferSize == NULL) ||\r
       (ServerIp == NULL) ||\r
-      ((BufferPtr == NULL) && DontUseBuffer) ||\r
       ((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  if (Operation == EFI_PXE_BASE_CODE_TFTP_READ_FILE ||\r
+      Operation == EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY ||\r
+      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_FILE ||\r
+      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY) {\r
+    if (BufferPtr == NULL && !DontUseBuffer) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+  }\r
+\r
   Config    = NULL;\r
   Status    = EFI_DEVICE_ERROR;\r
   Private   = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);\r