summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Bus
diff options
context:
space:
mode:
authorRuiyu Ni <ruiyu.ni@intel.com>2015-10-29 03:26:00 +0000
committerniruiyu <niruiyu@Edk2>2015-10-29 03:26:00 +0000
commit419a271d2e2c2f1903e139892de64fd109b7c99b (patch)
tree6150221927db0f53671b70a3caa905b68c7d2153 /MdeModulePkg/Bus
parent35a19d4840167c4fca31baca675c39ad1c401b48 (diff)
downloadedk2-419a271d2e2c2f1903e139892de64fd109b7c99b.tar.gz
edk2-419a271d2e2c2f1903e139892de64fd109b7c99b.tar.bz2
edk2-419a271d2e2c2f1903e139892de64fd109b7c99b.zip
MdeModulePkg: Do not dump NULL padding resource descriptor
Add a check for ResourcePaddingDescriptors being a valid pointer in DumpPpbPaddingResource() to prevent looping on memory not owned by PciBusDxe. The ResourcePaddingDescriptors is initialized to NULL when the PCI_IO_DEVICE structure is allocated and remains NULL if no PCI hot plug controllers are present. This issue is only observed when DEBUG_CODE() macros are enabled and was introduced by the following patch: [edk2] [Patch] MdeModulePkg: Fix a PciBusDxe hot plug bug SVN revsion 18658 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Kinney Michael <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18696 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Bus')
-rw-r--r--MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
index 030ef42320..a6ade26e3a 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
@@ -340,6 +340,10 @@ DumpPpbPaddingResource (
EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor;
PCI_BAR_TYPE Type;
+ if (PciIoDevice->ResourcePaddingDescriptors == NULL) {
+ return;
+ }
+
if (ResourceType == PciBarTypeIo16 || ResourceType == PciBarTypeIo32) {
ResourceType = PciBarTypeIo;
}