diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-04-30 21:42:44 -0400 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2010-04-30 21:42:44 -0400 |
commit | 52688d6ec977e69b164e0bd3de51d43cf6d4b7b3 (patch) | |
tree | b4e0d9de8fdbf8b29a95d85b81fdc8ba7201fff8 /include/net/sctp | |
parent | bd69b981a354be40cc709f3046f0c56f00da6163 (diff) |
sctp: discard ABORT chunk with zero verification tag in COOKIE-WAIT state
In current implementation if ABORT chunk is received with T flag is set
and zero verification tag in COOKIE-WAIT state, the ABORT chunk will be
always accepted. This is because in COOKIE-WAIT state, the endpoint does
not know the peer's verification tag, and it's zero in the endpoint.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'include/net/sctp')
-rw-r--r-- | include/net/sctp/sm.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h index 851c813adb3a..273a8bb683e3 100644 --- a/include/net/sctp/sm.h +++ b/include/net/sctp/sm.h | |||
@@ -437,7 +437,7 @@ sctp_vtag_verify_either(const struct sctp_chunk *chunk, | |||
437 | */ | 437 | */ |
438 | if ((!sctp_test_T_bit(chunk) && | 438 | if ((!sctp_test_T_bit(chunk) && |
439 | (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)) || | 439 | (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)) || |
440 | (sctp_test_T_bit(chunk) && | 440 | (sctp_test_T_bit(chunk) && asoc->c.peer_vtag && |
441 | (ntohl(chunk->sctp_hdr->vtag) == asoc->c.peer_vtag))) { | 441 | (ntohl(chunk->sctp_hdr->vtag) == asoc->c.peer_vtag))) { |
442 | return 1; | 442 | return 1; |
443 | } | 443 | } |