Hi,

Does this patch fix your issue?

--HPS
commit cc7a224fa956372cc5c5b4d29aa6906d79bd9f26
Author: Hans Petter Selasky <hsela...@freebsd.org>
Date:   Wed Jun 8 08:49:55 2022 +0200

    tcp: Skip sackhole KASSERTS() on NULL
    
    Inadvertedly introduced NULL pointer dereference during
    sackhole sanity check in D35387.
    
    No functional change intended.
    
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D35423
    Sponsored by:   NVIDIA Networking

diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c
index 273d56c510e2..4ecc0e045118 100644
--- a/sys/netinet/tcp_sack.c
+++ b/sys/netinet/tcp_sack.c
@@ -963,9 +963,10 @@ tcp_sack_output(struct tcpcb *tp, int *sack_bytes_rexmt)
 	while ((hole = TAILQ_NEXT(hole, scblink)) != NULL) {
 		if (SEQ_LT(hole->rxmit, hole->end)) {
 			tp->sackhint.nexthole = hole;
-			break;
+			goto out;
 		}
 	}
+	return (hole);
 out:
 	KASSERT(SEQ_LT(hole->start, hole->end), ("%s: hole.start >= hole.end", __func__));
 	KASSERT(SEQ_LT(hole->start, tp->snd_fack), ("%s: hole.start >= snd.fack", __func__));

Reply via email to