All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: Roland Dreier <roland@kernel.org>
Cc: netdev@vger.kernel.org, stable@vger.kernel.org,
	Roland Dreier <roland@purestorage.com>
Subject: Re: [PATCH 3.19 and earlier] fib_rules: Fix dump_rules() not to exit early
Date: Mon, 19 Oct 2015 11:24:54 +0100	[thread overview]
Message-ID: <20151019102454.GD3424@ares> (raw)
In-Reply-To: <1444066168-5566-1-git-send-email-roland@kernel.org>

On Mon, Oct 05, 2015 at 10:29:28AM -0700, Roland Dreier wrote:
> From: Roland Dreier <roland@purestorage.com>
> 
> 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 <roland@purestorage.com>
> ---
> 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.
>

Thanks Roland, I'm queuing this fix for the 3.16 kernel as well.

Cheers,
--
Luís


>  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++;
> -- 
> 2.5.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Luis Henriques <luis.henriques@canonical.com>
To: Roland Dreier <roland@kernel.org>
Cc: netdev@vger.kernel.org, stable@vger.kernel.org,
	Roland Dreier <roland@purestorage.com>
Subject: Re: [PATCH 3.19 and earlier] fib_rules: Fix dump_rules() not to exit early
Date: Mon, 19 Oct 2015 11:24:54 +0100	[thread overview]
Message-ID: <20151019102454.GD3424@ares> (raw)
In-Reply-To: <1444066168-5566-1-git-send-email-roland@kernel.org>

On Mon, Oct 05, 2015 at 10:29:28AM -0700, Roland Dreier wrote:
> From: Roland Dreier <roland@purestorage.com>
> 
> 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 <roland@purestorage.com>
> ---
> 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.
>

Thanks Roland, I'm queuing this fix for the 3.16 kernel as well.

Cheers,
--
Lu�s


>  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++;
> -- 
> 2.5.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-10-19 10:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-05 17:29 [PATCH 3.19 and earlier] fib_rules: Fix dump_rules() not to exit early Roland Dreier
2015-10-05 21:50 ` Jiri Slaby
2015-10-08 12:50 ` Ben Hutchings
2015-10-09 14:33 ` Thomas Jarosch
2015-10-18  0:12 ` Greg KH
2015-10-18  0:34 ` Patch "fib_rules: Fix dump_rules() not to exit early" has been added to the 3.14-stable tree gregkh
2015-10-18  0:51 ` Patch "fib_rules: Fix dump_rules() not to exit early" has been added to the 3.10-stable tree gregkh
2015-10-19 10:24 ` Luis Henriques [this message]
2015-10-19 10:24   ` [PATCH 3.19 and earlier] fib_rules: Fix dump_rules() not to exit early Luis Henriques

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151019102454.GD3424@ares \
    --to=luis.henriques@canonical.com \
    --cc=netdev@vger.kernel.org \
    --cc=roland@kernel.org \
    --cc=roland@purestorage.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.