aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@fh-muenster.de>2020-04-06 16:04:26 +0200
committerMichael Tuexen <tuexen@fh-muenster.de>2020-04-06 16:04:26 +0200
commit66a25d7fbf997da958b2c2980361b79fe2b459cb (patch)
tree353656d2bc20e90a14e8987e6f4090d73fd39084
parent0390f325a39b067d2177b7fc4f2a08ae94a0ac6d (diff)
downloadusrsctp-66a25d7fbf997da958b2c2980361b79fe2b459cb.tar.gz
Be more pedantic when starting / stopping a timer.
-rwxr-xr-xusrsctplib/netinet/sctputil.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/usrsctplib/netinet/sctputil.c b/usrsctplib/netinet/sctputil.c
index baaaec8e..81104929 100755
--- a/usrsctplib/netinet/sctputil.c
+++ b/usrsctplib/netinet/sctputil.c
@@ -34,7 +34,7 @@
#ifdef __FreeBSD__
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/netinet/sctputil.c 359405 2020-03-28 20:25:45Z tuexen $");
+__FBSDID("$FreeBSD: head/sys/netinet/sctputil.c 359657 2020-04-06 13:58:13Z tuexen $");
#endif
#include <netinet/sctp_os.h>
@@ -1803,9 +1803,14 @@ sctp_timeout_handler(void *t)
#endif
/* sanity checks... */
- KASSERT(tmr->self == tmr, ("tmr->self corrupted"));
- KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type), ("Invalid timer type %d", tmr->type));
+ KASSERT(tmr->self == tmr,
+ ("sctp_timeout_handler: tmr->self corrupted"));
+ KASSERT(SCTP_IS_TIMER_TYPE_VALID(tmr->type),
+ ("sctp_timeout_handler: invalid timer type %d", tmr->type));
type = tmr->type;
+ KASSERT(stcb == NULL || stcb->sctp_ep == inp,
+ ("sctp_timeout_handler of type %d: inp = %p, stcb->sctp_ep %p",
+ type, stcb, stcb->sctp_ep));
if (inp) {
SCTP_INP_INCR_REF(inp);
}
@@ -2259,6 +2264,9 @@ sctp_timer_start(int t_type, struct sctp_inpcb *inp, struct sctp_tcb *stcb,
uint32_t to_ticks;
uint32_t rndval, jitter;
+ KASSERT(stcb == NULL || stcb->sctp_ep == inp,
+ ("sctp_timer_start of type %d: inp = %p, stcb->sctp_ep %p",
+ t_type, stcb, stcb->sctp_ep));
tmr = NULL;
to_ticks = 0;
if (stcb != NULL) {
@@ -2692,6 +2700,9 @@ sctp_timer_stop(int t_type, struct sctp_inpcb *inp, struct sctp_tcb *stcb,
{
struct sctp_timer *tmr;
+ KASSERT(stcb == NULL || stcb->sctp_ep == inp,
+ ("sctp_timer_stop of type %d: inp = %p, stcb->sctp_ep %p",
+ t_type, stcb, stcb->sctp_ep));
if (stcb != NULL) {
SCTP_TCB_LOCK_ASSERT(stcb);
} else if (inp != NULL) {