aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/sm_sideeffect.c
diff options
context:
space:
mode:
authorGui Jianfeng <guijianfeng@cn.fujitsu.com>2008-04-12 21:39:34 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-12 21:39:34 -0400
commitf4ad85ca3ef8a1ede76c5020a28a8f4057b4d24f (patch)
treecfab9dcd7b29eb150bd6168cf40c375bd9006bbe /net/sctp/sm_sideeffect.c
parent72da7b3860cabf427590b4982bc880bafab4d5c8 (diff)
[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.c3
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,
1536 error = sctp_auth_asoc_init_active_key(asoc, 1536 error = sctp_auth_asoc_init_active_key(asoc,
1537 GFP_ATOMIC); 1537 GFP_ATOMIC);
1538 break; 1538 break;
1539 case SCTP_CMD_UPDATE_INITTAG:
1540 asoc->peer.i.init_tag = cmd->obj.u32;
1541 break;
1539 1542
1540 default: 1543 default:
1541 printk(KERN_WARNING "Impossible command: %u, %p\n", 1544 printk(KERN_WARNING "Impossible command: %u, %p\n",