Author: tuexen
Date: Mon Apr  6 13:58:13 2020
New Revision: 359657
URL: https://svnweb.freebsd.org/changeset/base/359657

Log:
  Do more argument validation under INVARIANTS when starting/stopping
  an SCTP timer.
  
  MFC after:            1 week

Modified:
  head/sys/netinet/sctputil.c

Modified: head/sys/netinet/sctputil.c
==============================================================================
--- head/sys/netinet/sctputil.c Mon Apr  6 09:59:21 2020        (r359656)
+++ head/sys/netinet/sctputil.c Mon Apr  6 13:58:13 2020        (r359657)
@@ -1730,9 +1730,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);
        }
@@ -2147,6 +2152,9 @@ sctp_timer_start(int t_type, struct sctp_inpcb *inp, s
        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) {
@@ -2581,6 +2589,9 @@ sctp_timer_stop(int t_type, struct sctp_inpcb *inp, st
 {
        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) {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to