mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
tipc: Fix bug in scope checking for multicast messages
This patch ensures that TIPC's multicast message name lookup algorithm does individualized scope checking for each published name it examines. Previously, scope checking was only done for the first name in a name table publication list, which could result in incoming multicast messages being delivered to ports publishing names with "node" scope, or not being delivered to ports publishing names with "cluster" or "zone" scope. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0e35fd5e52
commit
08d2cf0f74
@ -710,9 +710,11 @@ int tipc_nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit,
|
||||
if (sseq->lower > upper)
|
||||
break;
|
||||
publ = sseq->cluster_list;
|
||||
if (publ && (publ->scope <= limit))
|
||||
if (publ)
|
||||
do {
|
||||
if (publ->node == tipc_own_addr)
|
||||
if (publ->scope > limit)
|
||||
/* ignore out-of-scope publication */ ;
|
||||
else if (publ->node == tipc_own_addr)
|
||||
tipc_port_list_add(dports, publ->ref);
|
||||
else
|
||||
res = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user