On Tue, Sep 22, 2015 at 9:40 PM, Roopa Prabhu <[email protected]> wrote:
> + err = fib_nl_fill_rule(skb, rule, NETLINK_CB(cb->skb).portid,
> + cb->nlh->nlmsg_seq, RTM_NEWRULE,
> + NLM_F_MULTI, ops);
> + if (err)
FWIW I believe this breaks pre-4.0 stable kernels (unfortunately it
just showed up in 3.10.90). In kernels without 053c095a82cf
("netlink: make nlmsg_end() and genlmsg_end() void") then
fib_nl_fill_rule() returns a positive value (skb->len) on success, so
we break out of the loop here immediately. Symptom is "ip rule show"
loops forever printing the first rule.
After I finish testing a fix (as trivial as changing to "if (err <
0)") here, I'll send it to -stable guys.
- R.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html