fib_rules: fix error return code
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 26 Apr 2017 14:03:50 +0000 (14:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Apr 2017 20:35:57 +0000 (16:35 -0400)
Fix to return error code -EINVAL from the error handling
case instead of 0, as done elsewhere in this function.

Fixes: 622ec2c9d524 ("net: core: add UID to flows, rules, and routes")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/fib_rules.c

index c58c1df6f92be0ce2c3b293ee1f89f607b2028f8..f21c4d3aeae0cf59a8d9239cf1e581e6d136c740 100644 (file)
@@ -440,6 +440,7 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
        if (tb[FRA_TUN_ID])
                rule->tun_id = nla_get_be64(tb[FRA_TUN_ID]);
 
+       err = -EINVAL;
        if (tb[FRA_L3MDEV]) {
 #ifdef CONFIG_NET_L3_MASTER_DEV
                rule->l3mdev = nla_get_u8(tb[FRA_L3MDEV]);
@@ -461,7 +462,6 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
        else
                rule->suppress_ifgroup = -1;
 
-       err = -EINVAL;
        if (tb[FRA_GOTO]) {
                if (rule->action != FR_ACT_GOTO)
                        goto errout_free;
@@ -592,8 +592,10 @@ int fib_nl_delrule(struct sk_buff *skb, struct nlmsghdr *nlh,
 
        if (tb[FRA_UID_RANGE]) {
                range = nla_get_kuid_range(tb);
-               if (!uid_range_set(&range))
+               if (!uid_range_set(&range)) {
+                       err = -EINVAL;
                        goto errout;
+               }
        } else {
                range = fib_kuid_range_unset;
        }