[NETFILTER] fix leak of fragment queue at unloading nf_conntrack_ipv6
authorYasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Mon, 14 Nov 2005 23:28:45 +0000 (15:28 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Nov 2005 23:28:45 +0000 (15:28 -0800)
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>
net/ipv6/netfilter/nf_conntrack_reasm.c

index 1b68d714c0a4f280a3d67bf7754d79de894a3c2f..c2c52af9e5602c4be485c5f4212c170c4e1b79a6 100644 (file)
@@ -282,6 +282,7 @@ static void nf_ct_frag6_evictor(void)
                        return;
                }
                tmp = nf_ct_frag6_lru_list.next;
+               BUG_ON(tmp == NULL);
                fq = list_entry(tmp, struct nf_ct_frag6_queue, lru_list);
                atomic_inc(&fq->refcnt);
                read_unlock(&nf_ct_frag6_lock);
@@ -891,5 +892,6 @@ int nf_ct_frag6_init(void)
 void nf_ct_frag6_cleanup(void)
 {
        del_timer(&nf_ct_frag6_secret_timer);
+       nf_ct_frag6_low_thresh = 0;
        nf_ct_frag6_evictor();
 }