tipc: fix memory leak of publications

Commit 1bb8dce57f ("tipc: fix memory
leak during module removal") introduced a memory leak issue: when
name table is stopped, it's forgotten that publication instances are
freed properly. Additionally the useless "continue" statement in
tipc_nametbl_stop() is removed as well.

Reported-by: Jason <huzhijiang@gmail.com>
Signed-off-by: Ying Xue <ying.xue@windriver.com>
Acked-by: Erik Hugne <erik.hugne@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Ying Xue 2014-04-29 11:12:18 +08:00 committed by David S. Miller
parent 5c98631cca
commit 1621b94d2a

View File

@ -969,6 +969,7 @@ static void tipc_purge_publications(struct name_seq *seq)
list_for_each_entry_safe(publ, safe, &info->zone_list, zone_list) { list_for_each_entry_safe(publ, safe, &info->zone_list, zone_list) {
tipc_nametbl_remove_publ(publ->type, publ->lower, publ->node, tipc_nametbl_remove_publ(publ->type, publ->lower, publ->node,
publ->ref, publ->key); publ->ref, publ->key);
kfree(publ);
} }
} }
@ -990,7 +991,6 @@ void tipc_nametbl_stop(void)
hlist_for_each_entry_safe(seq, safe, seq_head, ns_list) { hlist_for_each_entry_safe(seq, safe, seq_head, ns_list) {
tipc_purge_publications(seq); tipc_purge_publications(seq);
} }
continue;
} }
kfree(table.types); kfree(table.types);
table.types = NULL; table.types = NULL;