The branch main has been updated by glebius:

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

commit d1cbb17a873c787a527316bbb27551e97d5ad30c
Author:     Gleb Smirnoff <gleb...@freebsd.org>
AuthorDate: 2024-04-09 00:02:00 +0000
Commit:     Gleb Smirnoff <gleb...@freebsd.org>
CommitDate: 2024-04-09 00:02:00 +0000

    unix: fix the ad hoc STAILQ_PREPEND()
    
    If there is nothing to prepend, don't try STAILQ_INSERT_HEAD().
    
    Fixes:  d80a97def9a1db6f07f5d2e68f7ad62b27918947
    Reported-by: syzbot+bb7f3d07c79b5faf8...@syzkaller.appspotmail.com
---
 sys/kern/uipc_usrreq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index 1b9416269696..d1f32cf3d711 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -1368,7 +1368,8 @@ restart:
                                UIPC_STREAM_SBCHECK(sb);
                                MPASS(!(sb->sb_state & SBS_CANTRCVMORE));
                                /* XXXGL: STAILQ_PREPEND */
-                               if (STAILQ_EMPTY(&sb->sb_mbq))
+                               if (STAILQ_EMPTY(&sb->sb_mbq) &&
+                                   control != NULL)
                                        STAILQ_INSERT_HEAD(&sb->sb_mbq,
                                            control, m_stailq);
                                else

Reply via email to