]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpDxe/HttpProto.c
NetworkPkg/HttpDxe: Fix HTTP download OS image over 4G size failure
[mirror_edk2.git] / NetworkPkg / HttpDxe / HttpProto.c
index 3d61ba2ae122b49ed5f8f6424557f37332c466e5..3fda294be3cb61983d555424df1ea4abead2cbdb 100644 (file)
@@ -2031,8 +2031,8 @@ HttpTcpReceiveBody (
   \r
   if (HttpInstance->LocalAddressIsIPv6) {\r
     Rx6Token = &Wrap->TcpWrap.Rx6Token;\r
-    Rx6Token ->Packet.RxData->DataLength = (UINT32) HttpMsg->BodyLength;\r
-    Rx6Token ->Packet.RxData->FragmentTable[0].FragmentLength = (UINT32) HttpMsg->BodyLength;\r
+    Rx6Token ->Packet.RxData->DataLength = (UINT32) MIN (MAX_UINT32, HttpMsg->BodyLength);\r
+    Rx6Token ->Packet.RxData->FragmentTable[0].FragmentLength = (UINT32) MIN (MAX_UINT32, HttpMsg->BodyLength);\r
     Rx6Token ->Packet.RxData->FragmentTable[0].FragmentBuffer = (VOID *) HttpMsg->Body;\r
     Rx6Token->CompletionToken.Status = EFI_NOT_READY;\r
 \r
@@ -2043,8 +2043,8 @@ HttpTcpReceiveBody (
     }\r
   } else {\r
     Rx4Token = &Wrap->TcpWrap.Rx4Token;\r
-    Rx4Token->Packet.RxData->DataLength = (UINT32) HttpMsg->BodyLength;\r
-    Rx4Token->Packet.RxData->FragmentTable[0].FragmentLength = (UINT32) HttpMsg->BodyLength;\r
+    Rx4Token->Packet.RxData->DataLength = (UINT32) MIN (MAX_UINT32, HttpMsg->BodyLength);\r
+    Rx4Token->Packet.RxData->FragmentTable[0].FragmentLength = (UINT32) MIN (MAX_UINT32, HttpMsg->BodyLength);\r
     Rx4Token->Packet.RxData->FragmentTable[0].FragmentBuffer = (VOID *) HttpMsg->Body;\r
     \r
     Rx4Token->CompletionToken.Status = EFI_NOT_READY;\r