The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2af6611275b005b484c277bf4c7961b5a7c718e3
commit 2af6611275b005b484c277bf4c7961b5a7c718e3 Author: Gleb Smirnoff <[email protected]> AuthorDate: 2025-11-14 16:01:47 +0000 Commit: Mark Johnston <[email protected]> CommitDate: 2026-08-24 19:33:35 +0000 unix/stream: fix instant panic w/o INVARIANTS A stupid microoptimization I made leaving empty STAILQ inconsistent is a brainfart that is related to much earlier version of this code, where it was safe to do so. Approved by: so Security: FreeBSD-SA-26:57.unix Pointy hat to: glebius Fixes: 69f61cee2efb1eec0640ca7de9b2d51599569a5d (cherry picked from commit 82d8a5029a80a77166dca098b8fedb10d84e4e38) (cherry picked from commit 0f9fda8fb7b7f8c0fb7619a076a6c4b0dda0b67b) --- sys/kern/uipc_usrreq.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 97ebb72a927f..cd1795304b43 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -1509,11 +1509,10 @@ restart: } if (!peek) { - STAILQ_FIRST(&sb->uxst_mbq) = next; -#ifdef INVARIANTS if (next == NULL) STAILQ_INIT(&sb->uxst_mbq); -#endif + else + STAILQ_FIRST(&sb->uxst_mbq) = next; MPASS(sb->sb_acc >= datalen); sb->sb_acc -= datalen; sb->sb_ccc -= datalen;
