Skip to content

Commit

Permalink
Revert: "Staging: batman-adv: Adding netfilter-bridge hooks"
Browse files Browse the repository at this point in the history
This reverts commit 96d592e.

The netfilter hook seems to be misused and may leak skbs in situations
when NF_HOOK returns NF_STOLEN. It may not filter everything as
expected. Also the ethernet bridge tables are not yet capable to
understand batman-adv packet correctly.

It was only added for testing purposes and can be removed again.

Reported-by: Vasiliy Kulikov <segooon@gmail.com>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Sven Eckelmann authored and gregkh committed Sep 20, 2010
1 parent 2422084 commit 350aede
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 19 deletions.
13 changes: 0 additions & 13 deletions drivers/staging/batman-adv/hard-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
#include "hash.h"

#include <linux/if_arp.h>
#include <linux/netfilter_bridge.h>

#define MIN(x, y) ((x) < (y) ? (x) : (y))

Expand Down Expand Up @@ -431,11 +430,6 @@ static int hard_if_event(struct notifier_block *this,
return NOTIFY_DONE;
}

static int batman_skb_recv_finish(struct sk_buff *skb)
{
return NF_ACCEPT;
}

/* receive a packet with the batman ethertype coming on a hard
* interface */
int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
Expand All @@ -456,13 +450,6 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
if (atomic_read(&module_state) != MODULE_ACTIVE)
goto err_free;

/* if netfilter/ebtables wants to block incoming batman
* packets then give them a chance to do so here */
ret = NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, dev, NULL,
batman_skb_recv_finish);
if (ret != 1)
goto err_out;

/* packet should hold at least type and version */
if (unlikely(skb_headlen(skb) < 2))
goto err_free;
Expand Down
8 changes: 2 additions & 6 deletions drivers/staging/batman-adv/send.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include "vis.h"
#include "aggregation.h"

#include <linux/netfilter_bridge.h>

static void send_outstanding_bcast_packet(struct work_struct *work);

Expand Down Expand Up @@ -92,12 +91,9 @@ int send_skb_packet(struct sk_buff *skb,

/* dev_queue_xmit() returns a negative result on error. However on
* congestion and traffic shaping, it drops and returns NET_XMIT_DROP
* (which is > 0). This will not be treated as an error.
* Also, if netfilter/ebtables wants to block outgoing batman
* packets then giving them a chance to do so here */
* (which is > 0). This will not be treated as an error. */

return NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
dev_queue_xmit);
return dev_queue_xmit(skb);
send_skb_err:
kfree_skb(skb);
return NET_XMIT_DROP;
Expand Down

0 comments on commit 350aede

Please sign in to comment.