From 7972f5f996a925550e42493a78116db40a4aefda Mon Sep 17 00:00:00 2001 From: Pratham Pratap Date: Thu, 15 Mar 2018 10:31:20 +0530 Subject: [PATCH] usb: dwc3: Avoid NULL pointer access in dwc3_calc_trbs_left dwc3_calc_trbs_left function is calling dwc3_ep_prev_trb which can return NULL if trb pool is empty. This change adds check for the return value of dwc3_ep_prev_trb function to avoid NULL pointer dereference. Change-Id: Id11d5ffd23da7c070d5e0b26842d8738b073b212 Signed-off-by: Pratham Pratap Signed-off-by: Jack Pham --- drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 17be8ba52cfb..f79d016b8c2b 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1002,7 +1002,7 @@ static u32 dwc3_calc_trbs_left(struct dwc3_ep *dep) */ if (dep->trb_enqueue == dep->trb_dequeue) { tmp = dwc3_ep_prev_trb(dep, dep->trb_enqueue); - if (tmp->ctrl & DWC3_TRB_CTRL_HWO) + if (!tmp || tmp->ctrl & DWC3_TRB_CTRL_HWO) return 0; return DWC3_TRB_NUM - 1;