Message ID | OF4C91F5B8.1DBDF49E-ONC1257F57.004C552D-C1257F57.004C60E3@phoenixcontact.com |
---|---|
State | Superseded, archived |
Headers | show |
Hi Andreas, On Friday 12 February 2016 14:54:15 Andreas Pape wrote: > From 1cf69fc5b7ffac3193ad8fa4439586c865c5acab Mon Sep 17 00:00:00 2001 > From: Andreas Pape <apape@phoenixcontact.com> > Date: Fri, 12 Feb 2016 14:00:53 +0100 > Subject: [PATCH 4/4] batman-adv: free skb when dropping broadcast packet > received from another backbone gw > > skb should be freed in batadv_recv_bcast_packet if packet shall be dropped > due to > reception from another backbone gateway of the same backbone. > > Signed-off-by: Andreas Pape <apape@phoenixcontact.com> > --- > net/batman-adv/routing.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c > index 4dd646a..128ed28 100644 > --- a/net/batman-adv/routing.c > +++ b/net/batman-adv/routing.c > @@ -1104,8 +1104,10 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, > /* don't hand the broadcast up if it is from an originator > * from the same backbone. > */ > - if (batadv_bla_is_backbone_gw(skb, orig_node, hdr_size)) > - goto out; > + if (batadv_bla_is_backbone_gw(skb, orig_node, hdr_size)) { > + kfree_skb(skb); > + goto rx_success; > + } I disagree. In the original code, we return NET_RX_DROP, which makes the calling code already free the skb. Check batadv_batman_skb_recv() in main.c. Cheers, Simon
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 4dd646a..128ed28 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c @@ -1104,8 +1104,10 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, /* don't hand the broadcast up if it is from an originator * from the same backbone. */ - if (batadv_bla_is_backbone_gw(skb, orig_node, hdr_size)) - goto out; + if (batadv_bla_is_backbone_gw(skb, orig_node, hdr_size)) { + kfree_skb(skb); + goto rx_success; + } if (batadv_dat_snoop_incoming_arp_request(bat_priv, skb, hdr_size))