From 12f5ff97f6c1f87370213a00d0b36e8208beacf9 Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Thu, 17 Dec 2015 00:48:16 +0000 Subject: [PATCH] MdeModulePkg/PciSioSerialDxe:add non-null pointer dereference assertion Add assertion to make sure there doesn't exist null pointer dereference. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Feng Tian Reviewed-by: Qiu Shumin git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19308 6f19259b-4bc3-4df7-8a09-765794883524 --- 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 7fc053578d..e8cefecd8d 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); }