X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FNetwork%2FUefiPxeBcDxe%2FPxeBcImpl.c;h=663d4a0202826dcd290d66708faeb881e663f304;hp=15444c10836d36ac9f1cc7da05257ee3a7bbdff2;hb=894d038a8d0e99d456042e2b6d1554c4a406ea70;hpb=f2a064736dcea55b602e0e74607cb9b5b9f4a730 diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c index 15444c1083..663d4a0202 100644 --- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c +++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c @@ -1432,6 +1432,8 @@ CheckIpByFilter ( return TRUE; } + ASSERT (PxeBcMode->IpFilter.IpCnt < EFI_PXE_BASE_CODE_MAX_IPCNT); + for (Index = 0; Index < PxeBcMode->IpFilter.IpCnt; Index++) { CopyMem ( &Ip4Address, @@ -1755,20 +1757,20 @@ EfiPxeBcSetIpFilter ( BOOLEAN PromiscuousNeed; if (This == NULL) { - DEBUG ((EFI_D_ERROR, "BC *This pointer == NULL.\n")); + DEBUG ((EFI_D_ERROR, "This == NULL.\n")); return EFI_INVALID_PARAMETER; } Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This); Mode = Private->PxeBc.Mode; - if (Private == NULL) { - DEBUG ((EFI_D_ERROR, "PXEBC_PRIVATE_DATA poiner == NULL.\n")); + if (NewFilter == NULL) { + DEBUG ((EFI_D_ERROR, "NewFilter == NULL.\n")); return EFI_INVALID_PARAMETER; } - if (NewFilter == NULL) { - DEBUG ((EFI_D_ERROR, "IP Filter *NewFilter == NULL.\n")); + if (NewFilter->IpCnt > EFI_PXE_BASE_CODE_MAX_IPCNT) { + DEBUG ((EFI_D_ERROR, "NewFilter->IpCnt > %d.\n", EFI_PXE_BASE_CODE_MAX_IPCNT)); return EFI_INVALID_PARAMETER; } @@ -1778,6 +1780,7 @@ EfiPxeBcSetIpFilter ( } PromiscuousNeed = FALSE; + for (Index = 0; Index < NewFilter->IpCnt; ++Index) { if (IP4_IS_LOCAL_BROADCAST (EFI_IP4 (NewFilter->IpList[Index].v4))) { //