diff options
author | Evgeniy Polyakov <johnpol@2ka.mipt.ru> | 2007-09-20 13:02:32 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-09-26 10:54:43 -0700 |
commit | 36e95db9b99b269b2939511a7f2afd68d771fd7a (patch) | |
tree | 49296a868b90e6a641c5667bbd877b9d8550c251 /include/linux/Kbuild | |
parent | 29a2edbba56b39d5a3c268bae58c62234432846f (diff) | |
download | lwn-36e95db9b99b269b2939511a7f2afd68d771fd7a.tar.gz lwn-36e95db9b99b269b2939511a7f2afd68d771fd7a.zip |
Fix oops in vlan and bridging code
commit 8c7b43a2e58baa24002fa2b266d9a5007bc52a40 in mainline
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: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/Kbuild')
0 files changed, 0 insertions, 0 deletions