On 5/4/16 10:24 PM, David Miller wrote:
From: David Ahern <d...@cumulusnetworks.com>
Date: Wed, 4 May 2016 21:18:07 -0700
@@ -372,9 +372,13 @@ static int vrf_rt6_create(struct net_device *dev)
if (!rt6)
goto out;
- rt6->dst.output = vrf_output6;
- rt6->rt6i_table = fib6_get_table(net, vrf->tb_id);
dst_hold(&rt6->dst);
+
+ rt6->rt6i_table = fib6_new_table(net, vrf->tb_id);
+ if (!rt6->rt6i_table)
+ goto out;
+
+ rt6->dst.output = vrf_output6;
vrf->rt6 = rt6;
rc = 0;
out:
This leaks rt6.
Indeed. That fact was lost by follow on patches which fix the ordering.