diff options
author | Gui Jianfeng <guijianfeng@cn.fujitsu.com> | 2008-04-13 03:39:34 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-13 03:39:34 +0200 |
commit | f4ad85ca3ef8a1ede76c5020a28a8f4057b4d24f (patch) | |
tree | cfab9dcd7b29eb150bd6168cf40c375bd9006bbe /net/sctp/sm_sideeffect.c | |
parent | [SCTP]: Add check for hmac_algo parameter in sctp_verify_param() (diff) | |
download | linux-f4ad85ca3ef8a1ede76c5020a28a8f4057b4d24f.tar.xz linux-f4ad85ca3ef8a1ede76c5020a28a8f4057b4d24f.zip |
[SCTP]: Fix protocol violation when receiving an error lenght INIT-ACK
When receiving an error length INIT-ACK during COOKIE-WAIT,
a 0-vtag ABORT will be responsed. This action violates the
protocol apparently. This patch achieves the following things.
1 If the INIT-ACK contains all the fixed parameters, use init-tag
recorded from INIT-ACK as vtag.
2 If the INIT-ACK doesn't contain all the fixed parameters,
just reflect its vtag.
Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/sm_sideeffect.c')
-rw-r--r-- | net/sctp/sm_sideeffect.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 28eb38eb6083..a4763fd24fd8 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c @@ -1536,6 +1536,9 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, error = sctp_auth_asoc_init_active_key(asoc, GFP_ATOMIC); break; + case SCTP_CMD_UPDATE_INITTAG: + asoc->peer.i.init_tag = cmd->obj.u32; + break; default: printk(KERN_WARNING "Impossible command: %u, %p\n", |