lkml.org 
[lkml]   [2015]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 063/104] fib_rules: Fix dump_rules() not to exit early
    Date
    3.16.7-ckt19 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    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>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    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 aeedc3a961a1..99ae718b79be 100644
    --- a/net/core/fib_rules.c
    +++ b/net/core/fib_rules.c
    @@ -631,7 +631,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++;

    \
     
     \ /
      Last update: 2015-10-26 15:21    [W:3.096 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site