Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b91b396d authored by Jozsef Kadlecsik's avatar Jozsef Kadlecsik
Browse files

netfilter: ipset: list:set: make sure all elements are checked by the gc



When an element timed out, the next one was skipped by the garbage
collector, fixed.

Signed-off-by: default avatarJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
parent 40cd63bf
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -218,13 +218,16 @@ set_cleanup_entries(struct ip_set *set)
{
	struct list_set *map = set->data;
	struct set_elem *e;
	u32 i;
	u32 i = 0;

	for (i = 0; i < map->size; i++) {
	while (i < map->size) {
		e = list_set_elem(set, map, i);
		if (e->id != IPSET_INVALID_ID &&
		    ip_set_timeout_expired(ext_timeout(e, set)))
			list_set_del(set, i);
			/* Check element moved to position i in next loop */
		else
			i++;
	}
}