Received: by 10.192.165.156 with SMTP id m28csp59917imm; Tue, 10 Apr 2018 16:22:46 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/rS9K9NkGpx9gZld/4Bi+Ts0zOa0MBmsjo0sjRu+WRl06KgRughYEsUiLBNWQMv/CNJ6ae X-Received: by 2002:a17:902:7c0f:: with SMTP id x15-v6mr1103765pll.369.1523402566138; Tue, 10 Apr 2018 16:22:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523402566; cv=none; d=google.com; s=arc-20160816; b=dxHQLitUVCYWWADZ5VM/kPkooBpYzWw8Xz3eRTiJJRb9GFDYuoUQJKksQ21NepjHJo 0pw9ucEb2Hd4mlUQyLz43DhQeJ5SiRqwbFJOPvppELhMxf9bEaxZpqqmGYNrHvsJxjvH N9Dru5hdL6JtCAqMyKXC2huvnLNvX32fCrzrR9LXDIZJ4y8C6ogW0AU9S8JxV6P3e4hk NT3bqd+0wVYd0UIUuAQRG2y/OKYem4F2iXAqVrrn4E3F5qMAenrnFbV9BDUHbC7+tFWB wH7/T3MP5z5rBKALY+PXnsrieL6wexsSsOxXtJWtZgjYwTaNwwutsJ35bqoL2IozAD03 JPnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Pr4purGuqh4BX01NC4v6M54BNu7zRGNIGJ8H8iqhE7o=; b=SYHsjP68soMV9myB3ST0LGmEx+dlJ4iONTHPffgWzitw4JUl2PZ7h3AIc9UhgQuJbT oK20F8YOiBdqEMrXMVrwiBT0DrlKj7beFR0dNMKohhfI2moUtoK7IE21JtUibb6RHsoJ WucUMbCP/4wLts8htcIPxYQZYQ9UzTgprh3QVY9YzyZC0P0ItU6/KW6A/AvggtY5bpbv FWQpIHpZ9I1b11QaQUDvfPtDhLW5UnGCsyYNVM+/1rWfJDmsfj8g/GySWnRvkjf5+6ZG KmZfDcy2kT5tnTwUXttEjvMTbTUL3SGr6LA1AYymlPEyBkZmXHZ07HhHHSDlj/zK13rz 5pmw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d6si2834111pfc.230.2018.04.10.16.22.09; Tue, 10 Apr 2018 16:22:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755243AbeDJXR0 (ORCPT + 99 others); Tue, 10 Apr 2018 19:17:26 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:40668 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754828AbeDJWbj (ORCPT ); Tue, 10 Apr 2018 18:31:39 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id A9DF6C8D; Tue, 10 Apr 2018 22:31:38 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Craig Dillabaugh , Jamal Hadi Salim , "David S. Miller" Subject: [PATCH 4.15 130/168] net sched actions: fix dumping which requires several messages to user space Date: Wed, 11 Apr 2018 00:24:32 +0200 Message-Id: <20180410212806.332168763@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180410212800.144079021@linuxfoundation.org> References: <20180410212800.144079021@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.15-stable review patch. If anyone has any objections, please let me know. ------------------ From: Craig Dillabaugh [ Upstream commit 734549eb550c0c720bc89e50501f1b1e98cdd841 ] Fixes a bug in the tcf_dump_walker function that can cause some actions to not be reported when dumping a large number of actions. This issue became more aggrevated when cookies feature was added. In particular this issue is manifest when large cookie values are assigned to the actions and when enough actions are created that the resulting table must be dumped in multiple batches. The number of actions returned in each batch is limited by the total number of actions and the memory buffer size. With small cookies the numeric limit is reached before the buffer size limit, which avoids the code path triggering this bug. When large cookies are used buffer fills before the numeric limit, and the erroneous code path is hit. For example after creating 32 csum actions with the cookie aaaabbbbccccdddd $ tc actions ls action csum total acts 26 action order 0: csum (tcp) action continue index 1 ref 1 bind 0 cookie aaaabbbbccccdddd ..... action order 25: csum (tcp) action continue index 26 ref 1 bind 0 cookie aaaabbbbccccdddd total acts 6 action order 0: csum (tcp) action continue index 28 ref 1 bind 0 cookie aaaabbbbccccdddd ...... action order 5: csum (tcp) action continue index 32 ref 1 bind 0 cookie aaaabbbbccccdddd Note that the action with index 27 is omitted from the report. Fixes: 4b3550ef530c ("[NET_SCHED]: Use nla_nest_start/nla_nest_end")" Signed-off-by: Craig Dillabaugh Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/sched/act_api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -135,8 +135,10 @@ static int tcf_dump_walker(struct tcf_id continue; nest = nla_nest_start(skb, n_i); - if (!nest) + if (!nest) { + index--; goto nla_put_failure; + } err = tcf_action_dump_1(skb, p, 0, 0); if (err < 0) { index--;