diff --git a/devicemodel/hw/pci/xhci.c b/devicemodel/hw/pci/xhci.c index 50b9282e8..b79c74b56 100644 --- a/devicemodel/hw/pci/xhci.c +++ b/devicemodel/hw/pci/xhci.c @@ -2523,7 +2523,8 @@ done: #define XHCI_GET_SLOT(xdev, trb, slot, cmderr) \ do { \ - slot = (XHCI_TRB_3_SLOT_GET(trb->dwTrb3)) ? 0 : \ + slot = (XHCI_TRB_3_SLOT_GET(trb->dwTrb3) > \ + XHCI_MAX_SLOTS) ? 0 : \ XHCI_TRB_3_SLOT_GET(trb->dwTrb3); \ if (!slot) \ cmderr = XHCI_TRB_ERROR_INVALID; \