On Wed, Dec 11, 2019 at 05:10:17PM +0800, Jia-Ju Bai wrote: > > > On 2019/12/11 16:09, Greg Kroah-Hartman wrote: > > On Tue, Dec 10, 2019 at 10:54:54AM -0600, Bin Liu wrote: > > > From: Jia-Ju Bai <baijiaju1990@xxxxxxxxx> > > > > > > In musb_handle_intr_connect(), there is an if statement on line 783 to > > > check whether musb->hcd is NULL: > > > if (musb->hcd) > > > > > > When musb->hcd is NULL, it is used on line 797: > > > musb_host_poke_root_hub(musb); > > > if (musb->hcd->status_urb) > > > > > > Thus, a possible null-pointer dereference may occur. > > Maybe, if musb->hcd really ever could be NULL. > > > > In looking at the code, I don't see where that could happen, do you? > > Why is that check there in the first place? > > > > What sets musb->hcd to NULL in the first place? > > In fact, my static analysis tool identifies an if check about musb->hcd, so > it infers that musb->hcd could be NULL here. > But it does not try to find any explicit place that set musb->hcd to NULL. Can it do that? > If musb->hcd is never NULL here, we can just delete the related if check. I agree :) thanks, greg k-h