I will wait for Ard's feedback. It's an ARM specific module. Thanks/Ray
> -----Original Message----- > From: Zeng, Star > Sent: Monday, October 30, 2017 6:07 PM > To: Ni, Ruiyu <ruiyu...@intel.com>; Heyi Guo <heyi....@linaro.org>; linaro- > u...@lists.linaro.org; edk2-devel@lists.01.org > Cc: Dong, Eric <eric.d...@intel.com>; Ard Biesheuvel > <ard.biesheu...@linaro.org>; Zeng, Star <star.z...@intel.com> > Subject: RE: [edk2][PATCH] MdeModulePkg/NonDiscoverable: fix memory > override bug > > Ray, > Please help take a review to this patch. > > > Thanks, > Star > -----Original Message----- > From: Heyi Guo [mailto:heyi....@linaro.org] > Sent: Monday, October 30, 2017 1:48 PM > To: linaro-u...@lists.linaro.org; edk2-devel@lists.01.org > Cc: Heyi Guo <heyi....@linaro.org>; Zeng, Star <star.z...@intel.com>; > Dong, Eric <eric.d...@intel.com>; Ard Biesheuvel > <ard.biesheu...@linaro.org>; Ni, Ruiyu <ruiyu...@intel.com> > Subject: [edk2][PATCH] MdeModulePkg/NonDiscoverable: fix memory > override bug > > For PciIoPciRead interface, memory prior to Buffer would be written with > zeros if Offset was larger than sizeof (Dev->ConfigSpace), which would cause > serious system exception. > > So we add a pre-check branch to avoid memory override. > > Cc: Star Zeng <star.z...@intel.com> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Ruiyu Ni <ruiyu...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Heyi Guo <heyi....@linaro.org> > --- > .../Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c | 5 > +++++ > 1 file changed, 5 insertions(+) > > diff --git > a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverable > PciDeviceIo.c > b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverable > PciDeviceIo.c > index c836ad6..0e42ae4 100644 > --- > a/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverable > PciDeviceIo.c > +++ > b/MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverable > Pc > +++ iDeviceIo.c > @@ -465,6 +465,11 @@ PciIoPciRead ( > Address = (UINT8 *)&Dev->ConfigSpace + Offset; > Length = Count << ((UINTN)Width & 0x3); > > + if (Offset >= sizeof (Dev->ConfigSpace)) { > + ZeroMem (Buffer, Length); > + return EFI_SUCCESS; > + } > + > if (Offset + Length > sizeof (Dev->ConfigSpace)) { > // > // Read all zeroes for config space accesses beyond the first > -- > 1.9.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel