From patchwork Mon Oct 5 17:29:28 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland Dreier X-Patchwork-Id: 526428 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 4BCE7140180 for ; Tue, 6 Oct 2015 04:29:40 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=purestorage.com header.i=@purestorage.com header.b=l8DtuCrS; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750920AbbJER3e (ORCPT ); Mon, 5 Oct 2015 13:29:34 -0400 Received: from mail-pa0-f54.google.com ([209.85.220.54]:34819 "EHLO mail-pa0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750866AbbJER3d (ORCPT ); Mon, 5 Oct 2015 13:29:33 -0400 Received: by pacfv12 with SMTP id fv12so186307800pac.2 for ; Mon, 05 Oct 2015 10:29:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google; h=sender:from:to:cc:subject:date:message-id; bh=xy/5YXhjPd4kNYV1MlZi+SFE9PaO25+JLGy5A2WtOfs=; b=l8DtuCrSrR4OOrGKUX/JWmHQFT4/+L/YKJ2yQoNhKmS412+7FKn+hldKiQZCTioHYk 7a+/ImXAwFYRakbUu1S3HwaLiDPosWbhr0IBSjZY0OKTFhyVJt6QS1oDrdus2yVapexC 0Xi04YWjoQy8CZt3MFV42AHYDceK8TYxcKWus= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=xy/5YXhjPd4kNYV1MlZi+SFE9PaO25+JLGy5A2WtOfs=; b=TKYuTGsLf8NURUWCOujHaShzkGZZBpAtLYFqgqvctCZOgrjMYerDDE2yFQm44Jjw6o mhUx8zVvPms3sAtTEHrgVPe0civStXQBGu8b/o9ym9scirsSVOjm7WXOz71jiEBke9pa jKerq/8bPAebS8UhMQLIyjAbTs7VBg1tuL9Srab6bHXenR1a4TMsaq1K0iq26nHxbDsb 4oqTfv2pDoC9b+IYI7O+93mva1SPeyV8D+PCVtzj+NsNeKb5Dv3zJFZCruWBoMgCSRMN 6ZXr0/3ujHpU8TEonAMmrHZZ4QfWvCaKsOfSWtvn1rvD0cobz7358XD3p1/Yq+UE0kwp 4eCA== X-Gm-Message-State: ALoCoQl0crFE+/oXgLx1sikWQEGI+ItYTJBXz3mY2fsAq60y7N7QyJLo3j6Ioso60cNfH5KvRwrh X-Received: by 10.68.238.130 with SMTP id vk2mr41657535pbc.114.1444066172455; Mon, 05 Oct 2015 10:29:32 -0700 (PDT) Received: from roland-t440p.purestorage.com (50-206-43-50-static.hfc.comcastbusiness.net. [50.206.43.50]) by smtp.gmail.com with ESMTPSA id fa14sm28923425pac.8.2015.10.05.10.29.31 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 05 Oct 2015 10:29:32 -0700 (PDT) From: Roland Dreier To: netdev@vger.kernel.org, stable@vger.kernel.org Cc: Roland Dreier Subject: [PATCH 3.19 and earlier] fib_rules: Fix dump_rules() not to exit early Date: Mon, 5 Oct 2015 10:29:28 -0700 Message-Id: <1444066168-5566-1-git-send-email-roland@kernel.org> X-Mailer: git-send-email 2.5.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Roland Dreier Backports of 41fc014332d9 ("fib_rules: fix fib rule dumps across multiple skbs") introduced a regression in "ip rule show" - it ends up dumping the first rule over and over and never exiting, because 3.19 and earlier are missing commit 053c095a82cf ("netlink: make nlmsg_end() and genlmsg_end() void"), so fib_nl_fill_rule() ends up returning skb->len (i.e. > 0) in the success case. Fix this by checking the return code for < 0 instead of != 0. Signed-off-by: Roland Dreier --- Hi, this is needed for all stable trees earlier than 4.0 that have picked up 41fc014332d9; so far looks like at least 3.10.y and 3.14.y have made such releases. net/core/fib_rules.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 627e517077e4..84340a2605ed 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -606,7 +606,7 @@ static int dump_rules(struct sk_buff *skb, struct netlink_callback *cb, err = fib_nl_fill_rule(skb, rule, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, RTM_NEWRULE, NLM_F_MULTI, ops); - if (err) + if (err < 0) break; skip: idx++;