diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2015-03-29 16:34:52 +0200 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2015-03-29 16:56:00 +0200 |
commit | e91b76ec03b3d7aa8a5f182472f9a954e8368ea8 (patch) | |
tree | 499433b11f1702e3b719177088e36faf56817a75 /kernel/net/netfilter/ipset/ip_set_bitmap_gen.h | |
parent | aa458c2dd4eacd822f8b55d929f69697dc50bdf1 (diff) |
Make sure bitmap:ip,mac detects the proper MAC even when it's overwritten
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Diffstat (limited to 'kernel/net/netfilter/ipset/ip_set_bitmap_gen.h')
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_bitmap_gen.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/net/netfilter/ipset/ip_set_bitmap_gen.h b/kernel/net/netfilter/ipset/ip_set_bitmap_gen.h index 381a011..d05e759 100644 --- a/kernel/net/netfilter/ipset/ip_set_bitmap_gen.h +++ b/kernel/net/netfilter/ipset/ip_set_bitmap_gen.h @@ -144,10 +144,12 @@ mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext, if (ret == IPSET_ADD_FAILED) { if (SET_WITH_TIMEOUT(set) && - ip_set_timeout_expired(ext_timeout(x, set))) + ip_set_timeout_expired(ext_timeout(x, set))) { ret = 0; - else if (!(flags & IPSET_FLAG_EXIST)) + } else if (!(flags & IPSET_FLAG_EXIST)) { + set_bit(e->id, map->members); return -IPSET_ERR_EXIST; + } /* Element is re-added, cleanup extensions */ ip_set_ext_destroy(set, x); } @@ -165,6 +167,10 @@ mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext, ip_set_init_comment(ext_comment(x, set), ext); if (SET_WITH_SKBINFO(set)) ip_set_init_skbinfo(ext_skbinfo(x, set), ext); + + /* Activate element */ + set_bit(e->id, map->members); + return 0; } |