The branch main has been updated by rscheff:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=231e0dd5d1fb7778b1cb285e5ebee5502d5ad253

commit 231e0dd5d1fb7778b1cb285e5ebee5502d5ad253
Author:     Richard Scheffenegger <rsch...@freebsd.org>
AuthorDate: 2022-06-07 16:16:54 +0000
Commit:     Richard Scheffenegger <rsch...@freebsd.org>
CommitDate: 2022-06-07 16:18:42 +0000

    tcp: skip sackhole checks on NULL
    
    Inadvertedly introduced NULL pointer dereference during
    sackhole sanity check in D35387.
    
    Reviewed By:    glebius
    PR:             263445
    MFC after:      1 week
    Sponsored by:   NetApp, Inc.
    Differential Revision: https://reviews.freebsd.org/D35423
---
 sys/netinet/tcp_sack.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c
index c1bbf65a0770..273d56c510e2 100644
--- a/sys/netinet/tcp_sack.c
+++ b/sys/netinet/tcp_sack.c
@@ -956,7 +956,9 @@ tcp_sack_output(struct tcpcb *tp, int *sack_bytes_rexmt)
        INP_WLOCK_ASSERT(tp->t_inpcb);
        *sack_bytes_rexmt = tp->sackhint.sack_bytes_rexmit;
        hole = tp->sackhint.nexthole;
-       if (hole == NULL || SEQ_LT(hole->rxmit, hole->end))
+       if (hole == NULL)
+               return (hole);
+       if (SEQ_LT(hole->rxmit, hole->end))
                goto out;
        while ((hole = TAILQ_NEXT(hole, scblink)) != NULL) {
                if (SEQ_LT(hole->rxmit, hole->end)) {

Reply via email to