diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2013-09-23 15:28:06 -0400 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2013-09-30 15:33:29 -0400 |
commit | 8ec81f9a4db94fa5638c55793365b896dd9daecc (patch) | |
tree | 2d3a6168621399ca3b720cd3e22541a3f5a38f65 /net/netfilter | |
parent | 80571a9ea4ca9b6fee7ef0c13d3f31e774e0533b (diff) |
netfilter: ipset: For set:list types, replaced elements must be zeroed out
The new extensions require zero initialization for the new element
to be added into a slot from where another element was pushed away.
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/ipset/ip_set_list_set.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c index f9681dcf7476..e23f33c14435 100644 --- a/net/netfilter/ipset/ip_set_list_set.c +++ b/net/netfilter/ipset/ip_set_list_set.c | |||
@@ -184,6 +184,8 @@ list_set_add(struct ip_set *set, u32 i, struct set_adt_elem *d, | |||
184 | } | 184 | } |
185 | memmove(list_set_elem(set, map, i + 1), e, | 185 | memmove(list_set_elem(set, map, i + 1), e, |
186 | set->dsize * (map->size - (i + 1))); | 186 | set->dsize * (map->size - (i + 1))); |
187 | /* Extensions must be initialized to zero */ | ||
188 | memset(e, 0, set->dsize); | ||
187 | } | 189 | } |
188 | } | 190 | } |
189 | 191 | ||
@@ -192,7 +194,7 @@ list_set_add(struct ip_set *set, u32 i, struct set_adt_elem *d, | |||
192 | ip_set_timeout_set(ext_timeout(e, set), ext->timeout); | 194 | ip_set_timeout_set(ext_timeout(e, set), ext->timeout); |
193 | if (SET_WITH_COUNTER(set)) | 195 | if (SET_WITH_COUNTER(set)) |
194 | ip_set_init_counter(ext_counter(e, set), ext); | 196 | ip_set_init_counter(ext_counter(e, set), ext); |
195 | if (SET_WITH_COMMENT(set) && ext->comment) | 197 | if (SET_WITH_COMMENT(set)) |
196 | ip_set_init_comment(ext_comment(e, set), ext); | 198 | ip_set_init_comment(ext_comment(e, set), ext); |
197 | return 0; | 199 | return 0; |
198 | } | 200 | } |