summaryrefslogtreecommitdiffstats
path: root/net/core/neighbour.c
diff options
context:
space:
mode:
authorKirill Korotaev2006-09-01 10:34:10 +0200
committerDavid S. Miller2006-09-18 08:21:01 +0200
commit3fcde74b3877756f4b4725a883d0b48696c0d369 (patch)
treeafadd7d4d1a3b01f0941b8e1039bad6b2ba222af /net/core/neighbour.c
parentMerge branch 'master' into upstream-fixes (diff)
downloadkernel-qcow2-linux-3fcde74b3877756f4b4725a883d0b48696c0d369.tar.gz
kernel-qcow2-linux-3fcde74b3877756f4b4725a883d0b48696c0d369.tar.xz
kernel-qcow2-linux-3fcde74b3877756f4b4725a883d0b48696c0d369.zip
[NEIGH]: neigh_table_clear() doesn't free stats
neigh_table_clear() doesn't free tbl->stats. Found by Alexey Kuznetsov. Though Alexey considers this leak minor for mainstream, I still believe that cleanup code should not forget to free some of the resources :) At least, this is critical for OpenVZ with virtualized neighbour tables. Signed-Off-By: Kirill Korotaev <dev@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/neighbour.c')
-rw-r--r--net/core/neighbour.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 5130d2efdbbe..fe2113f54e2b 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1432,6 +1432,9 @@ int neigh_table_clear(struct neigh_table *tbl)
kfree(tbl->phash_buckets);
tbl->phash_buckets = NULL;
+ free_percpu(tbl->stats);
+ tbl->stats = NULL;
+
return 0;
}