From d4055f08f2a2db79b080afd6483ff6b4b558c2b2 Mon Sep 17 00:00:00 2001 From: John Levon Date: Thu, 4 Feb 2021 18:13:00 +0000 Subject: fix vfio_irq_idx_to_str() (#309) This debug helper wasn't handling all the valid IRQ indexes. Found via ASAN. Signed-off-by: John Levon Reviewed-by: Swapnil Ingle --- lib/irq.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/irq.c b/lib/irq.c index aae5f26..0410926 100644 --- a/lib/irq.c +++ b/lib/irq.c @@ -40,16 +40,17 @@ #define LM2VFIO_IRQT(type) (type - 1) static const char * -vfio_irq_idx_to_str(int index) { - static const char *s[] = { - [VFIO_PCI_INTX_IRQ_INDEX] = "INTx", - [VFIO_PCI_MSI_IRQ_INDEX] = "MSI", - [VFIO_PCI_MSIX_IRQ_INDEX] = "MSI-X", - }; - - assert(index < VFU_DEV_NUM_IRQS); - - return s[index]; +vfio_irq_idx_to_str(int index) +{ + switch (index) { + case VFIO_PCI_INTX_IRQ_INDEX: return "INTx"; + case VFIO_PCI_MSI_IRQ_INDEX: return "MSI"; + case VFIO_PCI_MSIX_IRQ_INDEX: return "MSI-X"; + case VFIO_PCI_ERR_IRQ_INDEX: return "ERR"; + case VFIO_PCI_REQ_IRQ_INDEX: return "REQ"; + default: + abort(); + } } static long -- cgit v1.1