mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 22:14:04 +02:00
xhci: check control context is valid before dereferencing it.
[ Upstream commit 597899d2f7 ]
Don't dereference ctrl_ctx before checking it's valid.
Issue reported by Klockwork
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20210406070208.3406266-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2b195c32bc
commit
98599e1045
|
|
@ -3227,6 +3227,14 @@ static void xhci_endpoint_reset(struct usb_hcd *hcd,
|
||||||
|
|
||||||
/* config ep command clears toggle if add and drop ep flags are set */
|
/* config ep command clears toggle if add and drop ep flags are set */
|
||||||
ctrl_ctx = xhci_get_input_control_ctx(cfg_cmd->in_ctx);
|
ctrl_ctx = xhci_get_input_control_ctx(cfg_cmd->in_ctx);
|
||||||
|
if (!ctrl_ctx) {
|
||||||
|
spin_unlock_irqrestore(&xhci->lock, flags);
|
||||||
|
xhci_free_command(xhci, cfg_cmd);
|
||||||
|
xhci_warn(xhci, "%s: Could not get input context, bad type.\n",
|
||||||
|
__func__);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
xhci_setup_input_ctx_for_config_ep(xhci, cfg_cmd->in_ctx, vdev->out_ctx,
|
xhci_setup_input_ctx_for_config_ep(xhci, cfg_cmd->in_ctx, vdev->out_ctx,
|
||||||
ctrl_ctx, ep_flag, ep_flag);
|
ctrl_ctx, ep_flag, ep_flag);
|
||||||
xhci_endpoint_copy(xhci, cfg_cmd->in_ctx, vdev->out_ctx, ep_index);
|
xhci_endpoint_copy(xhci, cfg_cmd->in_ctx, vdev->out_ctx, ep_index);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user