On Mon, Oct 05, 2015 at 10:29:28AM -0700, Roland Dreier wrote: > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html