1dd978d
Bugzilla: 1074471
1dd978d
Upstream-status: queued for 3.14
1dd978d
1dd978d
From c88507fbad8055297c1d1e21e599f46960cbee39 Mon Sep 17 00:00:00 2001
1dd978d
From: Sabrina Dubroca <sd@queasysnail.net>
1dd978d
Date: Thu, 06 Mar 2014 16:51:57 +0000
1dd978d
Subject: ipv6: don't set DST_NOCOUNT for remotely added routes
1dd978d
1dd978d
DST_NOCOUNT should only be used if an authorized user adds routes
1dd978d
locally. In case of routes which are added on behalf of router
1dd978d
advertisments this flag must not get used as it allows an unlimited
1dd978d
number of routes getting added remotely.
1dd978d
1dd978d
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
1dd978d
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
1dd978d
Signed-off-by: David S. Miller <davem@davemloft.net>
1dd978d
---
1dd978d
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
1dd978d
index 11dac21..fba54a4 100644
1dd978d
--- a/net/ipv6/route.c
1dd978d
+++ b/net/ipv6/route.c
1dd978d
@@ -1513,7 +1513,7 @@ int ip6_route_add(struct fib6_config *cfg)
1dd978d
 	if (!table)
1dd978d
 		goto out;
1dd978d
 
1dd978d
-	rt = ip6_dst_alloc(net, NULL, DST_NOCOUNT, table);
1dd978d
+	rt = ip6_dst_alloc(net, NULL, (cfg->fc_flags & RTF_ADDRCONF) ? 0 : DST_NOCOUNT, table);
1dd978d
 
1dd978d
 	if (!rt) {
1dd978d
 		err = -ENOMEM;
1dd978d
--
1dd978d
cgit v0.9.2