HomeFreeBSD

Prevent calling USB backends multiple times.

Description

Prevent calling USB backends multiple times.

The TRB processing loop could potentially call a back-end twice
with the same status transaction. While this was generally benign,
some code paths in the tablet backend weren't set up to handle
this case, resulting in a NULL dereference.

Fix by

  • returning a STALL error when an invalid request was seen in the backend
  • skipping a call to the backend if the number of packets in a status transaction was zero (this code fragment was taken from the Intel ACRN xhci backend)

PR: 246964
Reported by: Ali Abdallah
Discussed with: Leon Dang (author)
Reviewed by: jhb (bhyve), Leon Dang
Approved by: jhb
Obtained from: Intel ACRN (partially)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D25228

Details

Provenance
grehanAuthored on
Reviewer
jhb
Differential Revision
D25228: Prevent calling USB backends multiple times.
Parents
rS362643: Update bhyve maintainers.
Branches
Unknown
Tags
Unknown