From f9c44369a0e271a9d61f1cb2dce6f917892bd3fe Mon Sep 17 00:00:00 2001 From: Long Liu Date: Tue, 14 Jul 2020 10:50:53 +0800 Subject: [PATCH] DM USB: xHCI: Fix XHCI_GET_SLOT value check issue Fix XHCI_GET_SLOT macro check slot valid function, when the slot value is bigger than XHCI_MAX_SLOT set the slot value to zero. Tracked-On: #4711 Signed-off-by: Long Liu Acked-by: Yu Wang --- devicemodel/hw/pci/xhci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; \