Fix a bug:

RFC 2132, Section 9.5 does not strictly state Bootfile name (option 67) is null 
terminated string. So force to append null terminated character at the end of string.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10635 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
hhuan13 2010-07-07 05:55:41 +00:00
parent be757a7fb5
commit 4546bcbb3a
1 changed files with 9 additions and 0 deletions

View File

@ -135,6 +135,7 @@ PxeBcParseCachedDhcpPacket (
EFI_DHCP4_PACKET_OPTION *Option;
UINT8 OfferType;
UINTN Index;
UINT8 *Ptr8;
CachedPacket->IsPxeOffer = FALSE;
ZeroMem (CachedPacket->Dhcp4Option, sizeof (CachedPacket->Dhcp4Option));
@ -188,6 +189,14 @@ PxeBcParseCachedDhcpPacket (
sizeof (Offer->Dhcp4.Header.BootFileName),
PXEBC_DHCP4_TAG_BOOTFILE
);
//
// RFC 2132, Section 9.5 does not strictly state Bootfile name (option 67) is null
// terminated string. So force to append null terminated character at the end of string.
//
ASSERT (Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL);
Ptr8 = (UINT8*)&Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE]->Data[0];
Ptr8 += Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE]->Length;
Ptr8 = '\0';
} else if ((Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL) &&
(Offer->Dhcp4.Header.BootFileName[0] != 0)) {