Sync one bug on PxeBC module from R8.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / PxeBcDxe / Pxe_bc_mtftp.c
index 6a42646..b065a53 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