• Evgeniy Polyakov's avatar
    [VLAN/BRIDGE]: Fix "skb_pull_rcsum - Fatal exception in interrupt" · e7c243c9
    Evgeniy Polyakov authored
    I tried to preserve bridging code as it was before, but logic is quite
    strange - I think we should free skb on error, since it is already
    unshared and thus will just leak.
    
    Herbert Xu states:
    
    > +	if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
    > +		goto out;
    
    If this happens it'll be a double-free on skb since we'll
    return NF_DROP which makes the caller free it too.
    
    We could return NF_STOLEN to prevent that but I'm not sure
    whether that's correct netfilter semantics.  Patrick, could
    you please make a call on this?
    
    Patrick McHardy states:
    
    NF_STOLEN should work fine here.
    Signed-off-by: default avatarEvgeniy Polyakov <johnpol@2ka.mipt.ru>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e7c243c9
vlan_dev.c 19.4 KB