mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
tipc: filter out messages not intended for this host
Port commit 20deb48d16fdd07ce2fdc8d03ea317362217e085 from git://tipc.cslab.ericsson.net/pub/git/people/allan/tipc.git Part of the large effort I'm trying to help with getting all the downstreamed code from windriver forward ported to the upstream tree Origional commit message Restore check to filter out inadverdently received messages This patch reimplements a check that allows TIPC to discard messages that are not intended for it. This check was present in TIPC 1.5/1.6, but was removed by accident during the development of TIPC 1.7; it has now been updated to account for new features present in TIPC 1.7 and reinserted into TIPC. The main benefit of this check is to filter out messages arriving from orphaned link endpoints, which can arise when a node exits the network and then re-enters it with a different TIPC network address (i.e. <Z.C.N> value). Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Origionally-authored-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d88dca79d3
commit
de58657146
@ -1882,6 +1882,15 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *tb_ptr)
|
||||
(msg_destnode(msg) != tipc_own_addr)))
|
||||
goto cont;
|
||||
|
||||
/* Discard non-routeable messages destined for another node */
|
||||
|
||||
if (unlikely(!msg_isdata(msg) &&
|
||||
(msg_destnode(msg) != tipc_own_addr))) {
|
||||
if ((msg_user(msg) != CONN_MANAGER) &&
|
||||
(msg_user(msg) != MSG_FRAGMENTER))
|
||||
goto cont;
|
||||
}
|
||||
|
||||
/* Locate unicast link endpoint that should handle message */
|
||||
|
||||
n_ptr = tipc_node_find(msg_prevnode(msg));
|
||||
|
Loading…
Reference in New Issue
Block a user