Re: [PATCH net 3/7] openvswitch: Fix skb leak in ovs_fragment()
From: Rustad, Mark D <hidden>
Date: 2015-09-29 22:49:12
Also in:
lkml
Attachments
- signature.asc [application/pgp-signature] 841 bytes
From: Rustad, Mark D <hidden>
Date: 2015-09-29 22:49:12
Also in:
lkml
On Sep 29, 2015, at 3:39 PM, Joe Stringer [off-list ref] wrote:@@ -728,8 +727,14 @@ static void ovs_fragment(struct vport *vport, struct sk_buff *skb, u16 mru,WARN_ONCE(1, "Failed fragment ->%s: eth=%04x, MRU=%d, MTU=%d.", ovs_vport_name(vport), ntohs(ethertype), mru, vport->dev->mtu); - kfree_skb(skb); + goto out; } + + skb = NULL; + +out: + if (skb) + kfree_skb(skb); } static void do_output(struct datapath *dp, struct sk_buff *skb, int out_port,
Wouldn't that hunk be better as:
@@ -728,8 +727,13 @@ static void ovs_fragment(struct vport *vport, struct sk_buff *skb, u16 mru,WARN_ONCE(1, "Failed fragment ->%s: eth=%04x, MRU=%d, MTU=%d.", ovs_vport_name(vport), ntohs(ethertype), mru, vport->dev->mtu); - kfree_skb(skb); + goto out; } + + return; + +out: + kfree_skb(skb); } static void do_output(struct datapath *dp, struct sk_buff *skb, int out_port, -- Mark Rustad, Networking Division, Intel Corporation