mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-17 15:51:34 +00:00
dm: fix pointer not checked for null before use
this patch fix null pointer access issues. Tracked-On: #3434 Signed-off-by: Tianhua Sun <tianhuax.s.sun@intel.com> Reviewed-by: Xiaoguang Wu <xiaoguang.wu@intel.com>
This commit is contained in:
parent
d4f44bc7a6
commit
493ddefd47
@ -2923,7 +2923,7 @@ retry:
|
|||||||
trb->dwTrb2 & 0x1FFFF, (void *)addr,
|
trb->dwTrb2 & 0x1FFFF, (void *)addr,
|
||||||
ccs);
|
ccs);
|
||||||
|
|
||||||
if (trb->dwTrb3 & XHCI_TRB_3_CHAIN_BIT)
|
if (xfer_block && (trb->dwTrb3 & XHCI_TRB_3_CHAIN_BIT))
|
||||||
xfer_block->chained = 1;
|
xfer_block->chained = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -181,6 +181,10 @@ usb_dev_comp_cb(struct libusb_transfer *trn)
|
|||||||
|
|
||||||
/* async request */
|
/* async request */
|
||||||
r = trn->user_data;
|
r = trn->user_data;
|
||||||
|
if (!r) {
|
||||||
|
UPRINTF(LFTL, "error: user context data not found on USB transfer\r\n");
|
||||||
|
goto free_transfer;
|
||||||
|
}
|
||||||
info = &r->udev->info;
|
info = &r->udev->info;
|
||||||
|
|
||||||
/* async transfer */
|
/* async transfer */
|
||||||
@ -311,13 +315,14 @@ out:
|
|||||||
cancel_out:
|
cancel_out:
|
||||||
/* unlock and release memory */
|
/* unlock and release memory */
|
||||||
g_ctx.unlock_ep_cb(xfer->dev, &xfer->epid);
|
g_ctx.unlock_ep_cb(xfer->dev, &xfer->epid);
|
||||||
libusb_free_transfer(trn);
|
|
||||||
|
|
||||||
if (r && r->buffer)
|
if (r && r->buffer)
|
||||||
free(r->buffer);
|
free(r->buffer);
|
||||||
|
|
||||||
xfer->requests[r->blk_start] = NULL;
|
xfer->requests[r->blk_start] = NULL;
|
||||||
free(r);
|
free(r);
|
||||||
|
free_transfer:
|
||||||
|
libusb_free_transfer(trn);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct usb_dev_req *
|
static struct usb_dev_req *
|
||||||
|
Loading…
Reference in New Issue
Block a user