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__));