summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
diff options
context:
space:
mode:
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2008-09-19 07:12:23 +0000
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2008-09-19 07:12:23 +0000
commit05c0e3cb8ad921c94ef51fc972e117baa32ce82f (patch)
tree16a04432c6fe45ed15106af3c0196c0cdad0bc59 /MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
parent2a5f2a5036425ab097f5ad203f65ff96c0059441 (diff)
downloadedk2-platforms-05c0e3cb8ad921c94ef51fc972e117baa32ce82f.tar.xz
1. Sync Bug:PXE Boot issue- UefiPxeBc driver currently does not follow PXE Spec
[Root Cause Analysis] The PXE offer selection in the PXE driver is splitted into two passes and the two passes are required to follow the same flow. However, in current code, there is some difference between the two. [Solution] make the second offer selection pass exactly match the first one. 2. Fixed one bug when allocating pool for UDP transmit packet. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5932 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c')
-rw-r--r--MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
index f8bdf5c945..87bedcb006 100644
--- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
+++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
@@ -513,8 +513,9 @@ EfiPxeBcDhcp (
//
// Zero those arrays to record the varies numbers of DHCP OFFERS.
//
- Private->NumOffers = 0;
- Private->BootpIndex = 0;
+ Private->GotProxyOffer = FALSE;
+ Private->NumOffers = 0;
+ Private->BootpIndex = 0;
ZeroMem (Private->ServerCount, sizeof (Private->ServerCount));
ZeroMem (Private->ProxyIndex, sizeof (Private->ProxyIndex));
@@ -1158,7 +1159,7 @@ EfiPxeBcUdpWrite (
}
FragCount = (HeaderSize != NULL) ? 2 : 1;
- Udp4TxData = (EFI_UDP4_TRANSMIT_DATA *) AllocatePool (sizeof (EFI_UDP4_TRANSMIT_DATA) + (FragCount - 1) * sizeof (EFI_UDP4_FRAGMENT_DATA));
+ Udp4TxData = (EFI_UDP4_TRANSMIT_DATA *) AllocateZeroPool (sizeof (EFI_UDP4_TRANSMIT_DATA) + (FragCount - 1) * sizeof (EFI_UDP4_FRAGMENT_DATA));
if (Udp4TxData == NULL) {
return EFI_OUT_OF_RESOURCES;
}