diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2008-06-04 20:28:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-04 20:28:21 -0400 |
commit | 84b07c1638c36ae937d4930b467001a0d22904e5 (patch) | |
tree | ec3d3cdb8ac7a8ba797aa05b163c7b328b7efd2f /net/tipc | |
parent | e83728c7b0ce92e57aa90eb4fc271a29d7a393d5 (diff) |
tipc: Fix bug in connection setup via native API
This patch fixes a bug that prevented TIPC from receiving a
connection setup request message on a native TIPC port.
The revised connection setup logic ensures that validation
of the source of a connection-based message is skipped if
the port is not yet connected to a peer.
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/port.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/tipc/port.c b/net/tipc/port.c index 2c64ad88e3cf..0bd3e6192c43 100644 --- a/net/tipc/port.c +++ b/net/tipc/port.c | |||
@@ -842,13 +842,10 @@ static void port_dispatcher_sigh(void *dummy) | |||
842 | 842 | ||
843 | tipc_port_unlock(p_ptr); | 843 | tipc_port_unlock(p_ptr); |
844 | if (unlikely(!connected)) { | 844 | if (unlikely(!connected)) { |
845 | if (unlikely(published)) | 845 | if (tipc_connect2port(dref, &orig)) |
846 | goto reject; | 846 | goto reject; |
847 | tipc_connect2port(dref,&orig); | 847 | } else if ((msg_origport(msg) != peer_port) || |
848 | } | 848 | (msg_orignode(msg) != peer_node)) |
849 | if (unlikely(msg_origport(msg) != peer_port)) | ||
850 | goto reject; | ||
851 | if (unlikely(msg_orignode(msg) != peer_node)) | ||
852 | goto reject; | 849 | goto reject; |
853 | if (unlikely(!cb)) | 850 | if (unlikely(!cb)) |
854 | goto reject; | 851 | goto reject; |