[NETFILTER]: nf_queue: check if rerouter is present before using it
authorPatrick McHardy <kaber@trash.net>
Mon, 27 Feb 2006 21:03:10 +0000 (13:03 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Feb 2006 21:03:10 +0000 (13:03 -0800)
Every rerouter needs to provide a save and a reroute function, we don't
need to check for them. But we do need to check if a rerouter is registered
at all for the current family, with bridging for example packets of
unregistered families can hit nf_queue.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/nf_queue.c

index 24ad41e6601b5a2429ad8d64e3a17e53aeed6525..1fc7152fba8fc89113db4913dfa2134a09871a6d 100644 (file)
@@ -155,13 +155,13 @@ int nf_queue(struct sk_buff **skb,
                if (physoutdev) dev_hold(physoutdev);
        }
 #endif
-       if (queue_rerouter[pf]->save)
+       if (queue_rerouter[pf])
                queue_rerouter[pf]->save(*skb, info);
 
        status = queue_handler[pf]->outfn(*skb, info, queuenum,
                                          queue_handler[pf]->data);
 
-       if (status >= 0 && queue_rerouter[pf]->reroute)
+       if (status >= 0 && queue_rerouter[pf])
                status = queue_rerouter[pf]->reroute(skb, info);
 
        read_unlock(&queue_handler_lock);