Skip to content

Commit e4bce97

Browse files
committed
Merge: CVE-2024-42226 kernel: usb: xhci: prevent potential failure in handle_tx_event() for Transfer events without TRB
MR: https://gitlab.com/redhat/rhel/src/kernel/rhel-9/-/merge_requests/2322 JIRA: https://issues.redhat.com/browse/RHEL-52378 CVE: CVE-2024-42226 This MR fixes a lack of endpoint ring condition at the handle_tx_event() function. This bug can be triggered on transfer events that don't always point to a TRB. Signed-off-by: Desnes Nunes <desnesn@redhat.com> Approved-by: Andrew Halaney <ahalaney@redhat.com> Approved-by: Charles Mirabile <cmirabil@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Approved-by: David Arcari <darcari@redhat.com> Merged-by: Lucas Zampieri <lzampier@redhat.com>
2 parents 30bf052 + 79f8bd2 commit e4bce97

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

drivers/usb/host/xhci-ring.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2660,16 +2660,17 @@ static int handle_tx_event(struct xhci_hcd *xhci,
26602660
else
26612661
xhci_handle_halted_endpoint(xhci, ep, NULL,
26622662
EP_SOFT_RESET);
2663-
goto cleanup;
2663+
break;
26642664
case COMP_RING_UNDERRUN:
26652665
case COMP_RING_OVERRUN:
26662666
case COMP_STOPPED_LENGTH_INVALID:
2667-
goto cleanup;
2667+
break;
26682668
default:
26692669
xhci_err(xhci, "ERROR Transfer event for unknown stream ring slot %u ep %u\n",
26702670
slot_id, ep_index);
26712671
goto err_out;
26722672
}
2673+
return 0;
26732674
}
26742675

26752676
/* Count current td numbers if ep->skip is set */

0 commit comments

Comments
 (0)