From patchwork Thu Mar 6 16:51:57 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sabrina Dubroca X-Patchwork-Id: 327515 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id EBF3C2C0327 for ; Fri, 7 Mar 2014 03:52:43 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752800AbaCFQwe (ORCPT ); Thu, 6 Mar 2014 11:52:34 -0500 Received: from smtp3-g21.free.fr ([212.27.42.3]:47581 "EHLO smtp3-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752782AbaCFQwd (ORCPT ); Thu, 6 Mar 2014 11:52:33 -0500 Received: from localhost (unknown [IPv6:2a01:e35:8b11:1410:922b:34ff:fed8:ca9b]) by smtp3-g21.free.fr (Postfix) with ESMTP id 0BB1FA611A; Thu, 6 Mar 2014 17:52:22 +0100 (CET) From: Sabrina Dubroca To: davem@davemloft.net Cc: netdev@vger.kernel.org, hannes@stressinduktion.org, Sabrina Dubroca Subject: [PATCH net] ipv6: don't set DST_NOCOUNT for remotely added routes Date: Thu, 6 Mar 2014 17:51:57 +0100 Message-Id: <1394124717-1957-1-git-send-email-sd@queasysnail.net> X-Mailer: git-send-email 1.9.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DST_NOCOUNT should only be used if an authorized user adds routes locally. In case of routes which are added on behalf of router advertisments this flag must not get used as it allows an unlimited number of routes getting added remotely. Signed-off-by: Sabrina Dubroca Acked-by: Hannes Frederic Sowa --- Hannes suggested this for stable net/ipv6/route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 11dac21e6586..fba54a407bb2 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1513,7 +1513,7 @@ int ip6_route_add(struct fib6_config *cfg) if (!table) goto out; - rt = ip6_dst_alloc(net, NULL, DST_NOCOUNT, table); + rt = ip6_dst_alloc(net, NULL, (cfg->fc_flags & RTF_ADDRCONF) ? 0 : DST_NOCOUNT, table); if (!rt) { err = -ENOMEM;