Reviewed-by: jiewen....@intel.com
> -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Star > Zeng > Sent: Monday, January 15, 2018 10:35 AM > To: edk2-devel@lists.01.org > Cc: Yao, Jiewen <jiewen....@intel.com>; Zeng, Star <star.z...@intel.com> > Subject: [edk2] [PATCH] IntelSiliconPkg IntelVTdDxe: Fix potential NULL > pointer > dereference > > The implementation of MdeModulePkg\Universal\Acpi\AcpiTableDxe reserves > first entry of RSDT/XSDT to FADT, the first entry value is 0 when FADT > is installed. So the RSDT/XSDT parsing code should check the entry value > first before checking the table signature. > > Cc: Jiewen Yao <jiewen....@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Star Zeng <star.z...@intel.com> > --- > IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c > b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c > index b981bcdb3aa0..342830a01fb0 100644 > --- a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c > +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmarAcpiTable.c > @@ -1,6 +1,6 @@ > /** @file > > - Copyright (c) 2017, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -889,7 +889,7 @@ ScanTableInRSDT ( > EntryPtr = &Rsdt->Entry; > for (Index = 0; Index < EntryCount; Index ++, EntryPtr ++) { > Table = (EFI_ACPI_DESCRIPTION_HEADER*)((UINTN)(*EntryPtr)); > - if (Table->Signature == Signature) { > + if ((Table != NULL) && (Table->Signature == Signature)) { > return Table; > } > } > @@ -923,7 +923,7 @@ ScanTableInXSDT ( > for (Index = 0; Index < EntryCount; Index ++) { > CopyMem (&EntryPtr, (VOID *)(BasePtr + Index * sizeof(UINT64)), > sizeof(UINT64)); > Table = (EFI_ACPI_DESCRIPTION_HEADER*)((UINTN)(EntryPtr)); > - if (Table->Signature == Signature) { > + if ((Table != NULL) && (Table->Signature == Signature)) { > return Table; > } > } > -- > 2.7.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel