summaryrefslogtreecommitdiffstats
path: root/br-nf-bds/linux2.5/net/core/netfilter.c
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-10-19 14:29:53 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-10-19 14:29:53 +0000
commit435b14632a66d54f1aee4602b26f365b58aec518 (patch)
treedeb57a4c54fbae66356e0475166ba599f00a78a8 /br-nf-bds/linux2.5/net/core/netfilter.c
parentc402ff5bbfe31c66bfe3a0910e03b103c2181510 (diff)
update to use nf_bridge
Diffstat (limited to 'br-nf-bds/linux2.5/net/core/netfilter.c')
-rw-r--r--br-nf-bds/linux2.5/net/core/netfilter.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/br-nf-bds/linux2.5/net/core/netfilter.c b/br-nf-bds/linux2.5/net/core/netfilter.c
index 198dad6..00ea7f9 100644
--- a/br-nf-bds/linux2.5/net/core/netfilter.c
+++ b/br-nf-bds/linux2.5/net/core/netfilter.c
@@ -418,8 +418,8 @@ static void nf_queue(struct sk_buff *skb,
{
int status;
struct nf_info *info;
- struct net_device *physindev;
- struct net_device *physoutdev;
+ struct net_device *physindev = NULL;
+ struct net_device *physoutdev = NULL;
if (!queue_handler[pf].outfn) {
kfree_skb(skb);
@@ -442,8 +442,12 @@ static void nf_queue(struct sk_buff *skb,
if (indev) dev_hold(indev);
if (outdev) dev_hold(outdev);
- if ((physindev = skb->physindev)) dev_hold(physindev);
- if ((physoutdev = skb->physoutdev)) dev_hold(physoutdev);
+ if (skb->nf_bridge) {
+ physindev = skb->nf_bridge->physindev;
+ if (physindev) dev_hold(physindev);
+ physoutdev = skb->nf_bridge->physoutdev;
+ if (physoutdev) dev_hold(physoutdev);
+ }
status = queue_handler[pf].outfn(skb, info, queue_handler[pf].data);
if (status < 0) {