]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/PxeBcDxe/Pxe_bc_mtftp.c
Sync one bug on PxeBC module from R8.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / PxeBcDxe / Pxe_bc_mtftp.c
index 6a42646ab3de5603937b9f3ccab82a5d63421ddb..b065a53f3a31d290ae671187ce08bf7de5fc2020 100644 (file)
@@ -778,7 +778,7 @@ MtftpListen (
   //\r
   do {\r
     if ((SaveReplyLen = ReplyLen) > BufferSize) {\r
-      SaveReplyLen = (UINTN) BufferSize;\r
+      SaveReplyLen = 0;\r
     }\r
 \r
     /* %%TBD - add big block number support */\r
@@ -1818,8 +1818,10 @@ PxeBcMtftp (
     *(PacketSizePtr = &PacketSize) = MAX_TFTP_PKT_SIZE;\r
   }\r
 \r
-  if (*PacketSizePtr > *BufferSizePtr) {\r
-    *PacketSizePtr = (UINTN) *BufferSizePtr;\r
+  if ((*PacketSizePtr > *BufferSizePtr) &&\r
+    (Operation != EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE) &&\r
+    (Operation != EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE)) {\r
+    *PacketSizePtr = MAX ((UINTN) *BufferSizePtr, MIN_TFTP_PKT_SIZE);\r
   }\r
 \r
   if (*PacketSizePtr < MIN_TFTP_PKT_SIZE) {\r