summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@redhat.com>2015-03-11 14:02:16 -0700
committerDavid S. Miller <davem@davemloft.net>2015-03-11 17:33:44 -0400
commit61f0d861fc6924fa673ecf1128a911d49cb10dc8 (patch)
tree2ba634a2bb90744aadd9b9ba2d871ff189bac5d2
parent6dede75b7e8ed4af31c3b06aec84401a5db88be9 (diff)
downloadlinux-61f0d861fc6924fa673ecf1128a911d49cb10dc8.tar.bz2
fib_trie: Fix uninitialized variable warning
The 0-day kernel test infrastructure reported a use of uninitialized variable warning for local_table due to the fact that the local and main allocations had been swapped from the original setup. This change corrects that by making it so that we free the main table if the local table allocation fails. Fixes: 0ddcf43d5 ("ipv4: FIB Local/MAIN table collapse") Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/fib_frontend.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index a0b69ae8be1c..c1caf9ded280 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -54,11 +54,11 @@ static int __net_init fib4_rules_init(struct net *net)
main_table = fib_trie_table(RT_TABLE_MAIN, NULL);
if (main_table == NULL)
- goto fail;
+ return -ENOMEM;
local_table = fib_trie_table(RT_TABLE_LOCAL, main_table);
if (local_table == NULL)
- return -ENOMEM;
+ goto fail;
hlist_add_head_rcu(&local_table->tb_hlist,
&net->ipv4.fib_table_hash[TABLE_LOCAL_INDEX]);
@@ -67,7 +67,7 @@ static int __net_init fib4_rules_init(struct net *net)
return 0;
fail:
- fib_free_table(local_table);
+ fib_free_table(main_table);
return -ENOMEM;
}
#else