netfilter: fix crash during boot if NAT has been compiled built-in
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 5 Sep 2012 16:24:55 +0000 (18:24 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 5 Sep 2012 16:35:51 +0000 (18:35 +0200)
commit00545bec9412d130c77f72a08d6c8b6ad21d4a1e
tree2ebfa8d7cb607d032cb719753ec47005ee4159d9
parent1e9f0207d3e63fab7a0f8a0e532bdc73ea850baf
netfilter: fix crash during boot if NAT has been compiled built-in

(c7232c9 netfilter: add protocol independent NAT core) introduced a
problem that leads to crashing during boot due to NULL pointer
dereference. It seems that xt_nat calls xt_register_target() before
xt_init():

net/netfilter/x_tables.c:static struct xt_af *xt; is NULL and we crash on
xt_register_target(struct xt_target *target)
{
        u_int8_t af = target->family;
        int ret;

        ret = mutex_lock_interruptible(&xt[af].mutex);
...

Fix this by changing the linking order, to make sure that x_tables
comes before xt_nat.

Reported-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/Makefile