浏览代码

[media] cobalt: fix unchecked return values

Function pci_find_ext_capability() may return 0, which is an invalid
address. In function cobalt_pcie_status_show(), its return value is used
without validation. This patch adds checks to validate the return
address.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Pan Bian 8 年之前
父节点
当前提交
b9150e8131
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/media/pci/cobalt/cobalt-driver.c

+ 2 - 0
drivers/media/pci/cobalt/cobalt-driver.c

@@ -205,6 +205,8 @@ void cobalt_pcie_status_show(struct cobalt *cobalt)
 
 
 	offset = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
 	offset = pci_find_capability(pci_dev, PCI_CAP_ID_EXP);
 	bus_offset = pci_find_capability(pci_bus_dev, PCI_CAP_ID_EXP);
 	bus_offset = pci_find_capability(pci_bus_dev, PCI_CAP_ID_EXP);
+	if (!offset || !bus_offset)
+		return;
 
 
 	/* Device */
 	/* Device */
 	pci_read_config_dword(pci_dev, offset + PCI_EXP_DEVCAP, &capa);
 	pci_read_config_dword(pci_dev, offset + PCI_EXP_DEVCAP, &capa);