Add assertion to make sure there doesn't exist null pointer dereference.
Cc: Qiu Shumin <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Feng Tian <[email protected]>
---
MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c
b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c
index 7fc0535..e8cefec 100644
--- a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c
+++ b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c
@@ -870,6 +870,7 @@ SerialControllerDriverStart (
if ((SerialDeviceCount != 0) && (RemainingDevicePath != NULL)) {
Uart = (UART_DEVICE_PATH *) SkipControllerDevicePathNode
(RemainingDevicePath, &ContainsControllerNode, &ControllerNumber);
for (Index = 0; Index < SerialDeviceCount; Index++) {
+ ASSERT ((SerialDevices != NULL) && (SerialDevices[Index] != NULL));
if ((!SerialDevices[Index]->ContainsControllerNode &&
!ContainsControllerNode) ||
(SerialDevices[Index]->ContainsControllerNode &&
ContainsControllerNode && SerialDevices[Index]->Instance == ControllerNumber)
) {
@@ -963,6 +964,7 @@ SerialControllerDriverStart (
// Restore the PCI attributes when all children is destroyed
(PciDeviceInfo->ChildCount == 0).
//
PciDeviceInfo = AllocatePool (sizeof (PCI_DEVICE_INFO));
+ ASSERT (PciDeviceInfo != NULL);
PciDeviceInfo->ChildCount = 0;
PciDeviceInfo->PciIo = ParentIo.PciIo;
Status = ParentIo.PciIo->Attributes (
@@ -993,6 +995,7 @@ SerialControllerDriverStart (
//
// Re-use the PciDeviceInfo stored in existing children.
//
+ ASSERT ((SerialDevices != NULL) && (SerialDevices[0] != NULL));
PciDeviceInfo = SerialDevices[0]->PciDeviceInfo;
ASSERT (PciDeviceInfo != NULL);
}
--
1.9.5.msysgit.0
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel