diff options
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 5 |
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)) |