Skip to content

Commit 38622f4

Browse files
ying-xuedavem330
authored andcommitted
tipc: ensure all name sequences are released when name table is stopped
As TIPC subscriber server is terminated before name table, no user depends on subscription list of name sequence when name table is stopped. Therefore, all name sequences stored in name table should be released whatever their subscriptions lists are empty or not, otherwise, memory leak might happen. Signed-off-by: Ying Xue <ying.xue@windriver.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Tested-by: Erik Hugne <erik.hugne@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 993bfe5 commit 38622f4

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

net/tipc/name_table.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -964,17 +964,16 @@ static void tipc_purge_publications(struct name_seq *seq)
964964
struct sub_seq *sseq;
965965
struct name_info *info;
966966

967-
if (!seq->sseqs) {
968-
nameseq_delete_empty(seq);
969-
return;
970-
}
971967
sseq = seq->sseqs;
972968
info = sseq->info;
973969
list_for_each_entry_safe(publ, safe, &info->zone_list, zone_list) {
974970
tipc_nametbl_remove_publ(publ->type, publ->lower, publ->node,
975971
publ->ref, publ->key);
976972
kfree(publ);
977973
}
974+
hlist_del_init(&seq->ns_list);
975+
kfree(seq->sseqs);
976+
kfree(seq);
978977
}
979978

980979
void tipc_nametbl_stop(void)

0 commit comments

Comments
 (0)