As the dma_alloc_coherent may return NULL, the return value needs to be checked to avoid NULL poineter dereference. Fixes: 33aa8d45a4fe ("staging: emxx_udc: Add Emma Mobile USB Gadget driver") Signed-off-by: Yuan Can <yuancan@xxxxxxxxxx> --- changes in v2: - do the null pointer check right before the memcpy(). drivers/staging/emxx_udc/emxx_udc.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/staging/emxx_udc/emxx_udc.c b/drivers/staging/emxx_udc/emxx_udc.c index b4e19174bef2..4fce1a9a659c 100644 --- a/drivers/staging/emxx_udc/emxx_udc.c +++ b/drivers/staging/emxx_udc/emxx_udc.c @@ -2592,9 +2592,15 @@ static int nbu2ss_ep_queue(struct usb_ep *_ep, &ep->phys_buf, GFP_ATOMIC | GFP_DMA); if (ep->epnum > 0) { - if (ep->direct == USB_DIR_IN) - memcpy(ep->virt_buf, req->req.buf, - req->req.length); + if (ep->direct == USB_DIR_IN) { + if (!ep->virt_buf) { + spin_unlock_irqrestore(&udc->lock, + flags); + return -ENOMEM; + } else + memcpy(ep->virt_buf, req->req.buf, + req->req.length); + } } } -- 2.17.1