aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2006-06-26 02:39:31 -0400
committerDavid S. Miller <davem@davemloft.net>2006-06-26 02:39:31 -0400
commit260082471ed3f6d751e9767e5a278d4e495d83f7 (patch)
tree5bf904b9cdc16ae877f562e5d4909827c00d9fd5 /net/tipc
parent9688243b635ecede23fe4492ba23f36439398095 (diff)
[TIPC]: Links now validate destination node specified by incoming messages.
This fix prevents link flopping and name table inconsistency problems arising when a node is assigned a different <Z.C.N> value than it used previously. (Changing the <Z.C.N> value causes other nodes to have two link endpoints sending to the same MAC address using two different destination <Z.C.N> values, requiring the receiving node to filter out the unwanted messages.) Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Per Liden <per.liden@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/link.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 784b24b6d102..955b87d9b46c 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1720,6 +1720,11 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *tb_ptr)
1720 link_recv_non_seq(buf); 1720 link_recv_non_seq(buf);
1721 continue; 1721 continue;
1722 } 1722 }
1723
1724 if (unlikely(!msg_short(msg) &&
1725 (msg_destnode(msg) != tipc_own_addr)))
1726 goto cont;
1727
1723 n_ptr = tipc_node_find(msg_prevnode(msg)); 1728 n_ptr = tipc_node_find(msg_prevnode(msg));
1724 if (unlikely(!n_ptr)) 1729 if (unlikely(!n_ptr))
1725 goto cont; 1730 goto cont;