summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_input.c
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-05-17 12:16:24 +0000
committerrrs <rrs@FreeBSD.org>2007-05-17 12:16:24 +0000
commitf03ff79b8eb759f4448ea239b33f54a4de64e72b (patch)
tree9c331efc7294abb10b0a637e060b8adcbb36b8be /sys/netinet/sctp_input.c
parent471f392f70d74931953e70708e2b2883ec00fcdd (diff)
downloadFreeBSD-src-f03ff79b8eb759f4448ea239b33f54a4de64e72b.zip
FreeBSD-src-f03ff79b8eb759f4448ea239b33f54a4de64e72b.tar.gz
- Fixed 1-2-1 model to not worry about associd in sockopts
- Fixed RTOinfo for bounding. - Fixed connect() to return ECONNREFUSED when an ABORT is received. - Added comments to direct Static Analysis not to look at some things it does not understand (comments are /* sa_ignore XXXXX */) - Bind when colliding was broken, missing not_found = 1 before checking to see if the port was in use caused endless bind loop. - Cookie life needs to be in milliseconds to conform to socket api. - Cookie life is not supposed to change if its 0, On the assoc level set we changed it to 0 opps. - Two more static analysis issues identified by the cisco tool. Null checks needed. - An issue for sendfile(). Need to validate the correct input argument. - When sending failed due to a no route to host, we leaked the mbuf chain failing to call m_freem(). - Fix #ifdef issue for getting hash block len when HAVE_SHA2 is NOT defined Reviewed by: gnn
Diffstat (limited to 'sys/netinet/sctp_input.c')
-rw-r--r--sys/netinet/sctp_input.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c
index 6ac5f6d..bacdfe3 100644
--- a/sys/netinet/sctp_input.c
+++ b/sys/netinet/sctp_input.c
@@ -224,6 +224,7 @@ sctp_process_init(struct sctp_init_chunk *cp, struct sctp_tcb *stcb,
sp, stcb);
sctp_free_a_strmoq(stcb, sp);
+ /* sa_ignore FREED_MEMORY */
sp = TAILQ_FIRST(&outs->outqueue);
}
}
@@ -294,6 +295,7 @@ sctp_process_init(struct sctp_init_chunk *cp, struct sctp_tcb *stcb,
* removed). Up front when the INIT arrives we will discard it if it
* is a restart and new addresses have been added.
*/
+ /* sa_ignore MEMLEAK */
return (0);
}
@@ -1921,7 +1923,7 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset,
*/
(void)SCTP_GETTIME_TIMEVAL(&now);
/* Expire time is in Ticks, so we convert to seconds */
- time_expires.tv_sec = cookie->time_entered.tv_sec + cookie->cookie_life;
+ time_expires.tv_sec = cookie->time_entered.tv_sec + TICKS_TO_SEC(cookie->cookie_life);
time_expires.tv_usec = cookie->time_entered.tv_usec;
if (timevalcmp(&now, &time_expires, >)) {
/* cookie is stale! */
@@ -4485,6 +4487,7 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset,
}
if (IS_SCTP_CONTROL(ch)) {
/* process the control portion of the SCTP packet */
+ /* sa_ignore NO_NULL_CHK */
stcb = sctp_process_control(m, iphlen, &offset, length, sh, ch,
inp, stcb, &net, &fwd_tsn_seen, vrf_id, table_id);
if (stcb) {
@@ -4864,6 +4867,7 @@ sctp_skip_csum_4:
ecn_bits = ip->ip_tos;
+ /* sa_ignore NO_NULL_CHK */
sctp_common_input_processing(&m, iphlen, offset, length, sh, ch,
inp, stcb, net, ecn_bits, vrf_id,
table_id);
OpenPOWER on IntegriCloud