diff options
author | Peter Chen <peter.chen@nxp.com> | 2016-08-11 03:51:45 -0400 |
---|---|---|
committer | Felipe Balbi <felipe.balbi@linux.intel.com> | 2016-08-22 03:45:12 -0400 |
commit | 70237dc8efd092b93b40dc2eba812d66a5d65cb1 (patch) | |
tree | a9dba2adcd5250db36cdd56cf47fab49c8aab3dd | |
parent | 3295235fd70ed6d594aadee8c892a14f6a4b2d2e (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.c | 10 |
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. |