aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2008-10-09 17:33:01 -0400
committerDavid S. Miller <davem@davemloft.net>2008-10-09 17:33:01 -0400
commit56eb82bb8d2cdd8d9f4838eaa109df41d7164ca5 (patch)
tree198a26f63294b8ba943ed1227e4a8ca01157d824 /net/sctp
parent3d5a019d5761a40465337711ae7d2beb1e9b43ec (diff)
sctp: Fix SNMP number of SCTP_MIB_ABORTED during violation handling.
If ABORT chunks require authentication and a protocol violation is triggered, we do not tear down the association. Subsequently, we should not increment SCTP_MIB_ABORTED. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/sm_statefuns.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 1588d063c68c..f5094f1b5afa 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -4188,11 +4188,10 @@ static sctp_disposition_t sctp_sf_abort_violation(
4188 SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS); 4188 SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS);
4189 } 4189 }
4190 4190
4191discard:
4192 sctp_sf_pdiscard(ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
4193
4194 SCTP_INC_STATS(SCTP_MIB_ABORTEDS); 4191 SCTP_INC_STATS(SCTP_MIB_ABORTEDS);
4195 4192
4193discard:
4194 sctp_sf_pdiscard(ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
4196 return SCTP_DISPOSITION_ABORT; 4195 return SCTP_DISPOSITION_ABORT;
4197 4196
4198nomem_pkt: 4197nomem_pkt:
@@ -4265,12 +4264,10 @@ static sctp_disposition_t sctp_sf_violation_paramlen(
4265 sctp_add_cmd_sf(commands, SCTP_CMD_ASSOC_FAILED, 4264 sctp_add_cmd_sf(commands, SCTP_CMD_ASSOC_FAILED,
4266 SCTP_PERR(SCTP_ERROR_PROTO_VIOLATION)); 4265 SCTP_PERR(SCTP_ERROR_PROTO_VIOLATION));
4267 SCTP_DEC_STATS(SCTP_MIB_CURRESTAB); 4266 SCTP_DEC_STATS(SCTP_MIB_CURRESTAB);
4267 SCTP_INC_STATS(SCTP_MIB_ABORTEDS);
4268 4268
4269discard: 4269discard:
4270 sctp_sf_pdiscard(ep, asoc, SCTP_ST_CHUNK(0), arg, commands); 4270 sctp_sf_pdiscard(ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
4271
4272 SCTP_INC_STATS(SCTP_MIB_ABORTEDS);
4273
4274 return SCTP_DISPOSITION_ABORT; 4271 return SCTP_DISPOSITION_ABORT;
4275nomem: 4272nomem:
4276 return SCTP_DISPOSITION_NOMEM; 4273 return SCTP_DISPOSITION_NOMEM;