Skip to content
  • Jesper Juhl's avatar
    USB CDC NCM: Don't deref NULL in cdc_ncm_rx_fixup() and don't use uninitialized variable. · 9e56790a
    Jesper Juhl authored
    
    
    skb_clone() dynamically allocates memory and may fail. If it does it
    returns NULL. This means we'll dereference a NULL pointer in
    drivers/net/usb/cdc_ncm.c::cdc_ncm_rx_fixup().
    As far as I can tell, the proper way to deal with this is simply to goto
    the error label.
    
    Furthermore gcc complains that 'skb' may be used uninitialized:
      drivers/net/usb/cdc_ncm.c: In function ‘cdc_ncm_rx_fixup’:
      drivers/net/usb/cdc_ncm.c:922:18: warning: ‘skb’ may be used uninitialized in this function
    and I believe it is right. On the line where we
      pr_debug("invalid frame detected (ignored)" ...
    we are using the local variable 'skb' but nothing has ever been assigned
    to that variable yet. I believe the correct fix for that is to use
    'skb_in' instead.
    
    Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9e56790a