diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2011-01-26 22:26:01 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2011-01-26 22:26:01 +0100 |
commit | fa7f70f8042c5fd8b64821cbfd66fdea5c1a2a67 (patch) | |
tree | 1c085313c8e52bfe64efd5f34579ea1a3eac201a /kernel/ip_set_bitmap_ipmac.c | |
parent | 16cfb322781f4555a2a385a3a9df8edbe5f58fe9 (diff) |
Correct the error codes: use ENOENT and EMSGSIZE
Use correct error codes (Patrick McHardy's review)
Diffstat (limited to 'kernel/ip_set_bitmap_ipmac.c')
-rw-r--r-- | kernel/ip_set_bitmap_ipmac.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/kernel/ip_set_bitmap_ipmac.c b/kernel/ip_set_bitmap_ipmac.c index 65cd1ea..68fec19 100644 --- a/kernel/ip_set_bitmap_ipmac.c +++ b/kernel/ip_set_bitmap_ipmac.c @@ -175,7 +175,7 @@ bitmap_ipmac_list(const struct ip_set *set, atd = ipset_nest_start(skb, IPSET_ATTR_ADT); if (!atd) - return -EFAULT; + return -EMSGSIZE; for (; cb->args[2] <= last; cb->args[2]++) { id = cb->args[2]; elem = bitmap_ipmac_elem(map, id); @@ -185,7 +185,7 @@ bitmap_ipmac_list(const struct ip_set *set, if (!nested) { if (id == first) { nla_nest_cancel(skb, atd); - return -EFAULT; + return -EMSGSIZE; } else goto nla_put_failure; } @@ -205,6 +205,10 @@ bitmap_ipmac_list(const struct ip_set *set, nla_put_failure: nla_nest_cancel(skb, nested); ipset_nest_end(skb, atd); + if (unlikely(id == first)) { + cb->args[2] = 0; + return -EMSGSIZE; + } return 0; } @@ -298,7 +302,7 @@ bitmap_ipmac_tlist(const struct ip_set *set, atd = ipset_nest_start(skb, IPSET_ATTR_ADT); if (!atd) - return -EFAULT; + return -EMSGSIZE; for (; cb->args[2] <= last; cb->args[2]++) { id = cb->args[2]; elem = bitmap_ipmac_elem(map, id); @@ -308,7 +312,7 @@ bitmap_ipmac_tlist(const struct ip_set *set, if (!nested) { if (id == first) { nla_nest_cancel(skb, atd); - return -EFAULT; + return -EMSGSIZE; } else goto nla_put_failure; } @@ -331,7 +335,7 @@ bitmap_ipmac_tlist(const struct ip_set *set, nla_put_failure: nla_nest_cancel(skb, nested); ipset_nest_end(skb, atd); - return 0; + return -EMSGSIZE; } static int @@ -457,7 +461,7 @@ bitmap_ipmac_head(struct ip_set *set, struct sk_buff *skb) return 0; nla_put_failure: - return -EFAULT; + return -EMSGSIZE; } static bool |