From patchwork Sat Aug 14 21:07:58 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 325 Return-Path: Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.22]) by open-mesh.net (Postfix) with SMTP id CE70915456C for ; Sat, 14 Aug 2010 23:08:11 +0200 (CEST) Received: (qmail invoked by alias); 14 Aug 2010 21:08:10 -0000 Received: from unknown (EHLO sven-desktop.lazhur.ath.cx) [89.246.199.18] by mail.gmx.net (mp068) with SMTP; 14 Aug 2010 23:08:10 +0200 X-Authenticated: #15668376 X-Provags-ID: V01U2FsdGVkX1/hD403YczhH4fsJFjtfYAJiYZYMOciSJVcqYg818 MB/9p3z2C5KsrI From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Sat, 14 Aug 2010 23:07:58 +0200 Message-Id: <1281820085-13507-2-git-send-email-sven.eckelmann@gmx.de> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1281820085-13507-1-git-send-email-sven.eckelmann@gmx.de> References: <1281820085-13507-1-git-send-email-sven.eckelmann@gmx.de> X-Y-GMX-Trusted: 0 Subject: [B.A.T.M.A.N.] [PATCH 2/9] batman-adv: Revert "Adding netfilter-bridge hooks" X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Aug 2010 21:08:12 -0000 The netfilter hook seems to be misused and may leak skbs in situations when NF_HOOK returns NF_STOLEN. It doesn't filter in the right chain and may not filter everything as expected. It was only added for testing purposes and can be removed again. Reported-by: Vasiliy Kulikov Signed-off-by: Sven Eckelmann --- batman-adv/hard-interface.c | 13 ------------- batman-adv/send.c | 8 ++------ 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/batman-adv/hard-interface.c b/batman-adv/hard-interface.c index f481cbb..d53138c 100644 --- a/batman-adv/hard-interface.c +++ b/batman-adv/hard-interface.c @@ -30,7 +30,6 @@ #include "hash.h" #include -#include #include "compat.h" @@ -495,11 +494,6 @@ out: 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, @@ -517,13 +511,6 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev, if (!skb) goto err_out; - /* 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(!pskb_may_pull(skb, 2))) goto err_free; diff --git a/batman-adv/send.c b/batman-adv/send.c index 47bde44..97c3142 100644 --- a/batman-adv/send.c +++ b/batman-adv/send.c @@ -29,7 +29,6 @@ #include "vis.h" #include "aggregation.h" #include "gateway_common.h" -#include #include "compat.h" @@ -94,12 +93,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;