[LTP] [PATCH 1/2] tpci: fix NULL pointer dereference on wrong test invocation

Krzysztof Kozlowski krzysztof.kozlowski@canonical.com
Fri Jun 18 15:05:35 CEST 2021


Fix NULL pointer dereference when a ltp_tpci test case is started before
choosing the device:

    ltp_tpci: test-case 12
    ltp_tpci: assign resources
    ltp_tpci: assign resource #0
    BUG: kernel NULL pointer dereference, address: 00000000000003b8
    ...
     Call Trace:
      dev_attr_store+0x17/0x30
      sysfs_kf_write+0x3e/0x50
      kernfs_fop_write_iter+0x13c/0x1d0
      new_sync_write+0x113/0x1a0
      vfs_write+0x1c5/0x200
      ksys_write+0x67/0xe0
      __x64_sys_write+0x1a/0x20
      do_syscall_64+0x49/0xc0
      entry_SYSCALL_64_after_hwframe+0x44/0xa9

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 testcases/kernel/device-drivers/pci/tpci_kernel/ltp_tpci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/testcases/kernel/device-drivers/pci/tpci_kernel/ltp_tpci.c b/testcases/kernel/device-drivers/pci/tpci_kernel/ltp_tpci.c
index 5b48aa0c7ece..f2d4a4ba497c 100644
--- a/testcases/kernel/device-drivers/pci/tpci_kernel/ltp_tpci.c
+++ b/testcases/kernel/device-drivers/pci/tpci_kernel/ltp_tpci.c
@@ -556,6 +556,11 @@ static int test_case(unsigned int cmd)
 {
 	int rc = TSKIP;
 
+	if (!ltp_pci.dev || !ltp_pci.bus) {
+		prk_err("device or bus not selected for test");
+		return TFAIL;
+	}
+
 	switch (cmd) {
 	case PCI_ENABLE:
 		rc = pci_enable();
-- 
2.27.0



More information about the ltp mailing list