Blob Blame History Raw
From: Zeng Heng <zengheng4@huawei.com>
Date: Mon, 21 Nov 2022 10:00:29 +0800
Subject: PCI: Check for alloc failure in pci_request_irq()
Git-commit: 2d9cd957d40c3ac491b358e7cff0515bb07a3a9c
Patch-mainline: 6.2-rc1
References: git-fixes

When kvasprintf() fails to allocate memory, it returns a NULL pointer.
Return error from pci_request_irq() so we don't dereference it.

[bhelgaas: commit log]
Fixes: 704e8953d3e9 ("PCI/irq: Add pci_request_irq() and pci_free_irq() helpers")
Link: https://lore.kernel.org/r/20221121020029.3759444-1-zengheng4@huawei.com
Signed-off-by: Zeng Heng <zengheng4@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/pci/irq.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/pci/irq.c
+++ b/drivers/pci/irq.c
@@ -89,6 +89,8 @@ int pci_request_irq(struct pci_dev *dev,
 	va_start(ap, fmt);
 	devname = kvasprintf(GFP_KERNEL, fmt, ap);
 	va_end(ap);
+	if (!devname)
+		return -ENOMEM;
 
 	ret = request_threaded_irq(pci_irq_vector(dev, nr), handler, thread_fn,
 			IRQF_SHARED, devname, dev_id);