]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h
NetworkPkg: Check for the max DHCP packet length before use it.
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcDhcp4.h
index 3aabaed088820f2b3abe0f17b6df5b53ed193988..27794c911a128e3b1f752c2a792c9c9373b704ea 100644 (file)
@@ -18,7 +18,7 @@
 \r
 #define PXEBC_DHCP4_OPTION_MAX_NUM         16\r
 #define PXEBC_DHCP4_OPTION_MAX_SIZE        312\r
-#define PXEBC_DHCP4_PACKET_MAX_SIZE        1472\r
+#define PXEBC_DHCP4_PACKET_MAX_SIZE        (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
 #define PXEBC_DHCP4_S_PORT                 67\r
 #define PXEBC_DHCP4_C_PORT                 68\r
 #define PXEBC_BS_DOWNLOAD_PORT             69\r
@@ -263,10 +263,12 @@ typedef struct {
   UINT8                 CredTypeLen;\r
 } PXEBC_VENDOR_OPTION;\r
 \r
+#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE  (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_PACKET_MAX_SIZE)\r
+\r
 typedef union {\r
   EFI_DHCP4_PACKET        Offer;\r
   EFI_DHCP4_PACKET        Ack;\r
-  UINT8                   Buffer[PXEBC_DHCP4_PACKET_MAX_SIZE];\r
+  UINT8                   Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
 } PXEBC_DHCP4_PACKET;\r
 \r
 typedef struct {\r