aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2013-09-23 15:28:06 -0400
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2013-09-30 15:33:29 -0400
commit8ec81f9a4db94fa5638c55793365b896dd9daecc (patch)
tree2d3a6168621399ca3b720cd3e22541a3f5a38f65 /net/netfilter
parent80571a9ea4ca9b6fee7ef0c13d3f31e774e0533b (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.c4
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}