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)) |
