Restore the checksum received before processing the packet.

MFC after: 1 week
This commit is contained in:
Michael Tuexen 2010-02-04 21:02:29 +00:00
parent 639c2d4fad
commit f1150dc0a5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=203503

View File

@ -5806,6 +5806,7 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port)
}
sh->checksum = 0; /* prepare for calc */
calc_check = sctp_calculate_cksum(m, iphlen);
sh->checksum = check;
SCTP_STAT_INCR(sctps_recvswcrc);
if (calc_check != check) {
SCTPDBG(SCTP_DEBUG_INPUT1, "Bad CSUM on SCTP packet calc_check:%x check:%x m:%p mlen:%d iphlen:%d\n",
@ -5831,7 +5832,6 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port)
SCTP_STAT_INCR_COUNTER32(sctps_checksumerrors);
goto bad;
}
sh->checksum = calc_check;
sctp_skip_csum_4:
/* destination port of 0 is illegal, based on RFC2960. */
if (sh->dest_port == 0) {