diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2002-10-19 14:29:53 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2002-10-19 14:29:53 +0000 |
commit | 435b14632a66d54f1aee4602b26f365b58aec518 (patch) | |
tree | deb57a4c54fbae66356e0475166ba599f00a78a8 /br-nf-bds/linux2.5/net/core/netfilter.c | |
parent | c402ff5bbfe31c66bfe3a0910e03b103c2181510 (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.c | 12 |
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) { |