mirror of https://gitee.com/openkylin/linux.git
[NETFILTER] fix leak of fragment queue at unloading nf_conntrack_ipv6
This patch makes nf_conntrack_ipv6 free all IPv6 fragment queues at module unloading time. Also introduce a BUG_ON if we ever again have leaks in the memory accounting. Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp> Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1ba430bc3e
commit
302fe1758d
|
@ -282,6 +282,7 @@ static void nf_ct_frag6_evictor(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tmp = nf_ct_frag6_lru_list.next;
|
tmp = nf_ct_frag6_lru_list.next;
|
||||||
|
BUG_ON(tmp == NULL);
|
||||||
fq = list_entry(tmp, struct nf_ct_frag6_queue, lru_list);
|
fq = list_entry(tmp, struct nf_ct_frag6_queue, lru_list);
|
||||||
atomic_inc(&fq->refcnt);
|
atomic_inc(&fq->refcnt);
|
||||||
read_unlock(&nf_ct_frag6_lock);
|
read_unlock(&nf_ct_frag6_lock);
|
||||||
|
@ -891,5 +892,6 @@ int nf_ct_frag6_init(void)
|
||||||
void nf_ct_frag6_cleanup(void)
|
void nf_ct_frag6_cleanup(void)
|
||||||
{
|
{
|
||||||
del_timer(&nf_ct_frag6_secret_timer);
|
del_timer(&nf_ct_frag6_secret_timer);
|
||||||
|
nf_ct_frag6_low_thresh = 0;
|
||||||
nf_ct_frag6_evictor();
|
nf_ct_frag6_evictor();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue