diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2011-04-07 09:54:43 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-09-01 11:16:35 -0400 |
commit | 641c218d120b03bdea4f658ab44930587cff9158 (patch) | |
tree | 223ef08cadbfbc116d5a3ade058cd96d7a095c27 /net/tipc/link.c | |
parent | f882cb7684cf54d4f5d3e25443a80a039e1b4bd7 (diff) | |
download | linux-641c218d120b03bdea4f658ab44930587cff9158.tar.gz linux-641c218d120b03bdea4f658ab44930587cff9158.tar.bz2 linux-641c218d120b03bdea4f658ab44930587cff9158.zip |
tipc: Enhance filtering of out-dated link reset messages
Ensure TIPC ignores an out-dated link reset message whose session
number predates the current session number. (Previously, TIPC only
ignored an out-date reset message whose session number was equal
to the current link session number.)
Out-dated link reset messages should not occur under normal circumstances;
however, they can be generated if a link endpoint is unable to send a
link reset message right away and queues it for later delivery, but the
queued message is not sent until after the link is established.
Thanks to Laser [gotolaser@gmail.com] for diagnosing the problem and
contributing a prototype patch.
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index e0bf6d5f1668..b43beea54108 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -2045,8 +2045,8 @@ static void link_recv_proto_msg(struct link *l_ptr, struct sk_buff *buf) case RESET_MSG: if (!link_working_unknown(l_ptr) && (l_ptr->peer_session != INVALID_SESSION)) { - if (msg_session(msg) == l_ptr->peer_session) - break; /* duplicate: ignore */ + if (less_eq(msg_session(msg), l_ptr->peer_session)) + break; /* duplicate or old reset: ignore */ } /* fall thru' */ case ACTIVATE_MSG: |