diff options
author | rrs <rrs@FreeBSD.org> | 2007-05-17 12:16:24 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-05-17 12:16:24 +0000 |
commit | f03ff79b8eb759f4448ea239b33f54a4de64e72b (patch) | |
tree | 9c331efc7294abb10b0a637e060b8adcbb36b8be /sys/netinet/sctp_input.c | |
parent | 471f392f70d74931953e70708e2b2883ec00fcdd (diff) | |
download | FreeBSD-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.c | 6 |
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); |