aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@nxp.com>2016-08-11 03:51:45 -0400
committerFelipe Balbi <felipe.balbi@linux.intel.com>2016-08-22 03:45:12 -0400
commit70237dc8efd092b93b40dc2eba812d66a5d65cb1 (patch)
treea9dba2adcd5250db36cdd56cf47fab49c8aab3dd
parent3295235fd70ed6d594aadee8c892a14f6a4b2d2e (diff)
usb: gadget: function: f_eem: socket buffer may be NULL
In eth_start_xmit, the socket buffer may be NULL. So, add NULL pointer check at .wrap API. Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-rw-r--r--drivers/usb/gadget/function/f_eem.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/f_eem.c b/drivers/usb/gadget/function/f_eem.c
index d58bfc32be9e..8741fd740174 100644
--- a/drivers/usb/gadget/function/f_eem.c
+++ b/drivers/usb/gadget/function/f_eem.c
@@ -341,11 +341,15 @@ static struct sk_buff *eem_wrap(struct gether *port, struct sk_buff *skb)
341{ 341{
342 struct sk_buff *skb2 = NULL; 342 struct sk_buff *skb2 = NULL;
343 struct usb_ep *in = port->in_ep; 343 struct usb_ep *in = port->in_ep;
344 int padlen = 0; 344 int headroom, tailroom, padlen = 0;
345 u16 len = skb->len; 345 u16 len = skb->len;
346 346
347 int headroom = skb_headroom(skb); 347 if (!skb)
348 int tailroom = skb_tailroom(skb); 348 return NULL;
349
350 len = skb->len;
351 headroom = skb_headroom(skb);
352 tailroom = skb_tailroom(skb);
349 353
350 /* When (len + EEM_HLEN + ETH_FCS_LEN) % in->maxpacket) is 0, 354 /* When (len + EEM_HLEN + ETH_FCS_LEN) % in->maxpacket) is 0,
351 * stick two bytes of zero-length EEM packet on the end. 355 * stick two bytes of zero-length EEM packet on the end.