]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpBootDxe/HttpBootDhcp6.c
NetworkPkg:Fix bug when parsing the dhcp6 option 16
[mirror_edk2.git] / NetworkPkg / HttpBootDxe / HttpBootDhcp6.c
index 2538bd116ca42ddb47c2081c4fab3e03c0399766..0157095edf821c4b89cd94a1edc205d18ebb5651 100644 (file)
@@ -251,8 +251,8 @@ HttpBootParseDhcp6Packet (
   Option = Options[HTTP_BOOT_DHCP6_IDX_VENDOR_CLASS];\r
 \r
   if (Option != NULL &&\r
-      NTOHS(Option->OpLen) >= 10 &&\r
-      CompareMem (Option->Data, DEFAULT_CLASS_ID_DATA, 10) == 0) {\r
+      NTOHS(Option->OpLen) >= 16 &&\r
+      CompareMem ((Option->Data + 6), DEFAULT_CLASS_ID_DATA, 10) == 0) {\r
       IsHttpOffer = TRUE;\r
   }\r
 \r
@@ -298,7 +298,11 @@ HttpBootParseDhcp6Packet (
   //\r
   if (IsHttpOffer) {\r
     if (IpExpressedUri) {\r
-      OfferType = IsProxyOffer ? HttpOfferTypeProxyIpUri : HttpOfferTypeDhcpIpUri;\r
+      if (IsProxyOffer) {\r
+        OfferType = HttpOfferTypeProxyIpUri;\r
+      } else {\r
+        OfferType = IsDnsOffer ? HttpOfferTypeDhcpIpUriDns : HttpOfferTypeDhcpIpUri;\r
+      }\r
     } else {\r
       if (!IsProxyOffer) {\r
         OfferType = IsDnsOffer ? HttpOfferTypeDhcpNameUriDns : HttpOfferTypeDhcpNameUri;\r