]> granicus.if.org Git - ipset/commit
netfilter: ipset: ipset list may return wrong member count for set with timeout
authorVishwanath Pai <vpai@akamai.com>
Thu, 17 Aug 2017 05:23:55 +0000 (01:23 -0400)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Wed, 6 Sep 2017 15:25:24 +0000 (17:25 +0200)
commit9ccbd1c6464cf62ad5531fd1a473703f4f472840
treed83c07cc6a71d353cee7daf2593adf1109dec5aa
parente3c74c6a621ffa16749afed8354b9b491484ebf9
netfilter: ipset: ipset list may return wrong member count for set with timeout

Simple testcase:

$ ipset create test hash:ip timeout 5
$ ipset add test 1.2.3.4
$ ipset add test 1.2.2.2
$ sleep 5

$ ipset l
Name: test
Type: hash:ip
Revision: 5
Header: family inet hashsize 1024 maxelem 65536 timeout 5
Size in memory: 296
References: 0
Number of entries: 2
Members:

We return "Number of entries: 2" but no members are listed. That is
because mtype_list runs "ip_set_timeout_expired" and does not list the
expired entries, but set->elements is never upated (until mtype_gc
cleans it up later).

Reviewed-by: Joshua Hunt <johunt@akamai.com>
Signed-off-by: Vishwanath Pai <vpai@akamai.com>
kernel/net/netfilter/ipset/ip_set_hash_gen.h