summaryrefslogtreecommitdiffstats
path: root/br-nf-bds
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-10-21 17:38:16 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-10-21 17:38:16 +0000
commitb43b62c5070e90323af148c8ea7b446d3491ea9a (patch)
treef1f7aaf723a892b5feecbc01fdc842dbce985a33 /br-nf-bds
parentaf134e25a002f112d65a115fff5662f957b7bc2c (diff)
call nf_bridge_alloc, don't use BRNF_COPY_HEADER
Diffstat (limited to 'br-nf-bds')
-rw-r--r--br-nf-bds/linux2.5/net/bridge/br_netfilter.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/br-nf-bds/linux2.5/net/bridge/br_netfilter.c b/br-nf-bds/linux2.5/net/bridge/br_netfilter.c
index ef14531..3e72859 100644
--- a/br-nf-bds/linux2.5/net/bridge/br_netfilter.c
+++ b/br-nf-bds/linux2.5/net/bridge/br_netfilter.c
@@ -6,7 +6,7 @@
* Lennert Buytenhek <buytenh@gnu.org>
* Bart De Schuymer <bart.de.schuymer@pandora.be>
*
- * $Id: br_netfilter.c,v 1.3 2002/10/19 14:33:23 bdschuym Exp $
+ * $Id: br_netfilter.c,v 1.4 2002/10/21 17:38:16 bdschuym Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -253,8 +253,9 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
#ifdef CONFIG_NETFILTER_DEBUG
skb->nf_debug ^= (1 << NF_IP_PRE_ROUTING);
#endif
+ if ((nf_bridge = nf_bridge_alloc(skb)) == NULL)
+ return NF_DROP;
- nf_bridge = skb->nf_bridge;
if (skb->pkt_type == PACKET_OTHERHOST) {
skb->pkt_type = PACKET_HOST;
nf_bridge->mask |= BRNF_PKT_TYPE;
@@ -503,7 +504,6 @@ static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
}
memcpy(nf_bridge->hh, skb->data - 16, 16);
- nf_bridge->mask |= BRNF_COPY_HEADER;
NF_HOOK(PF_INET, NF_IP_POST_ROUTING, skb, NULL,
bridge_parent(skb->dev), br_dev_queue_push_xmit);
@@ -545,8 +545,8 @@ static unsigned int ipv4_sabotage_out(unsigned int hook, struct sk_buff **pskb,
struct sk_buff *skb = *pskb;
struct nf_bridge_info *nf_bridge;
- if (!skb->nf_bridge)
- nf_bridge_alloc(skb);
+ if (!skb->nf_bridge && !nf_bridge_alloc(skb))
+ return NF_DROP;
nf_bridge = skb->nf_bridge;