git: d1cbb17a873c - main - unix: fix the ad hoc STAILQ_PREPEND()

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Tue, 09 Apr 2024 00:03:56 UTC
The branch main has been updated by glebius:

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

commit d1cbb17a873c787a527316bbb27551e97d5ad30c
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2024-04-09 00:02:00 +0000
Commit:     Gleb Smirnoff <glebius@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+bb7f3d07c79b5faf8de8@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