]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
1. Refine the error handling when the PXE-v4 DHCP offer isn't valid
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcImpl.c
index 83c24f0cc12cbc62cd2e7767d45bb70351966c50..82fddb169ae0a6e14525cb4130637ffd5331e3ae 100644 (file)
@@ -321,6 +321,8 @@ EfiPxeBcStop (
   gBS->CloseEvent (Private->UdpTimeOutEvent);\r
   Private->CurSrcPort   = 0;\r
   Private->BootFileSize = 0;\r
+  Private->SolicitTimes = 0;\r
+  Private->ElapsedTime  = 0;\r
 \r
   //\r
   // Reset the mode data.\r
@@ -386,6 +388,8 @@ EfiPxeBcDhcp (
   Mode->IcmpErrorReceived = FALSE;\r
   Private->Function       = EFI_PXE_BASE_CODE_FUNCTION_DHCP;\r
   Private->IsOfferSorted  = SortOffers;\r
+  Private->SolicitTimes   = 0;\r
+  Private->ElapsedTime    = 0;\r
 \r
   if (!Mode->Started) {\r
     return EFI_NOT_STARTED;\r
@@ -403,6 +407,10 @@ EfiPxeBcDhcp (
     //\r
     Status = PxeBcDhcp6Sarr (Private, Private->Dhcp6);\r
 \r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
+\r
     //\r
     // Configure Udp6Read instance\r
     //\r
@@ -419,6 +427,10 @@ EfiPxeBcDhcp (
     //\r
     Status = PxeBcDhcp4Dora (Private, Private->Dhcp4);\r
 \r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
+\r
     //\r
     // Configure Udp4Read instance\r
     //\r
@@ -1800,7 +1812,7 @@ EfiPxeBcSetParameters (
   }\r
 \r
   if (NewSendGUID != NULL) {\r
-    if (*NewSendGUID && EFI_ERROR (PxeBcGetSystemGuid (&SystemGuid))) {\r
+    if (*NewSendGUID && EFI_ERROR (NetLibGetSystemGuid (&SystemGuid))) {\r
       return EFI_INVALID_PARAMETER;\r
     }\r
     Mode->SendGUID = *NewSendGUID;\r