aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r--net/tipc/node.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 29cc85319327..d903f560e2fd 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -1469,6 +1469,7 @@ void tipc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)
1469 int bearer_id = b->identity; 1469 int bearer_id = b->identity;
1470 struct tipc_link_entry *le; 1470 struct tipc_link_entry *le;
1471 u16 bc_ack = msg_bcast_ack(hdr); 1471 u16 bc_ack = msg_bcast_ack(hdr);
1472 u32 self = tipc_own_addr(net);
1472 int rc = 0; 1473 int rc = 0;
1473 1474
1474 __skb_queue_head_init(&xmitq); 1475 __skb_queue_head_init(&xmitq);
@@ -1485,6 +1486,10 @@ void tipc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)
1485 return tipc_node_bc_rcv(net, skb, bearer_id); 1486 return tipc_node_bc_rcv(net, skb, bearer_id);
1486 } 1487 }
1487 1488
1489 /* Discard unicast link messages destined for another node */
1490 if (unlikely(!msg_short(hdr) && (msg_destnode(hdr) != self)))
1491 goto discard;
1492
1488 /* Locate neighboring node that sent packet */ 1493 /* Locate neighboring node that sent packet */
1489 n = tipc_node_find(net, msg_prevnode(hdr)); 1494 n = tipc_node_find(net, msg_prevnode(hdr));
1490 if (unlikely(!n)) 1495 if (unlikely(!n))