netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet
It does "kfree(list_head)" which looks wrong because entity that was allocated is definitely not list_head. However, this all works because list_head is first item in struct nf_ct_gre_keymap. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
887464a41f
commit
51807e91a7
|
@ -45,12 +45,12 @@ static LIST_HEAD(gre_keymap_list);
|
||||||
|
|
||||||
void nf_ct_gre_keymap_flush(void)
|
void nf_ct_gre_keymap_flush(void)
|
||||||
{
|
{
|
||||||
struct list_head *pos, *n;
|
struct nf_ct_gre_keymap *km, *tmp;
|
||||||
|
|
||||||
write_lock_bh(&nf_ct_gre_lock);
|
write_lock_bh(&nf_ct_gre_lock);
|
||||||
list_for_each_safe(pos, n, &gre_keymap_list) {
|
list_for_each_entry_safe(km, tmp, &gre_keymap_list, list) {
|
||||||
list_del(pos);
|
list_del(&km->list);
|
||||||
kfree(pos);
|
kfree(km);
|
||||||
}
|
}
|
||||||
write_unlock_bh(&nf_ct_gre_lock);
|
write_unlock_bh(&nf_ct_gre_lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue