From nobody Fri Sep 04 12:47:37 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hbx7s4pmBz6qdVd for ; Fri, 04 Sep 2026 12:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hbx7s3yZWz4Q14 for ; Fri, 04 Sep 2026 12:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788526057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qHaCu9YbsEY4BXHM0cL6e0xbXwt42Up9eAeBhu9lOmo=; b=QDkEsb/K3FOstVeJG1IYMgXAXUgnVn3cDiCz+Sjzta8FmH6dktNtlscFo4d5KIGk4hK9oS EeFKRhRJpe0RbKCNk9msMvm6GBkv3x+r6wswqh8FRu4bDQWcYlgTT1zfEfULodwS7FMh8N zZkO+WtOQNLxKDdkonp1BJtT+jiWXWx2scgTmKxMVjCwKSp1ooJq8Cik4YtwS1dAKBvFM+ cFlhDakPmGtozdVxuunzgZp/M+w0b9ZTJ0oW0KaKu/jlBCZI8e9oCp8fK2XbLcTVuS9nkA GjBuNF1DBpsbN7qDUqcX7KXPGjYuuFffUgqs8Qo2YiILm6jpqe7dkONPg2plHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1788526057; a=rsa-sha256; cv=none; b=AG721wF4POimEwdZ7d8U4uuQ4tlz3th/YIUBN9+F1Nc2HEE3MLA7i10+NEOQEkA+1SWtyO dEhbrjv/LgOB7078hcGRM2EAvsVtWcZXdWe1qqaaLwjO+0PN1s8Jpe11C0vJ/ucKRw7hVA 4sp++ZUGAVM2aAd42WH6NU337Vnl3P75I5bYCFH+ksIQkGyBNLfTo8zkCSztQiDNuzSkxR bxptTgHIjxwpYjK8HWsbXkdGihoDAYK/RmtJitm6LqqGfkiHG+O1/VFvIfSoxhAtoW/rL9 7FFWiKziD7qhN2iiqu/6PxETKJQa068Bk9mMajqpw3jAk59iDKb+WxX9EuFGvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788526057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qHaCu9YbsEY4BXHM0cL6e0xbXwt42Up9eAeBhu9lOmo=; b=wAQJoM+GciuUkNFPqqHvjBbklEVz2p2t0FuM/Ph1T5sAGA1UNYYP/g9NL42YjGzDlAdY0k ZyYte8En+ug7e0L7Sp0Ni56VrkIMIUAxKc+dCf9XpGLCs7re/2pK9z2YMjl4lGRu74Fk2y eQROSCGrzLYUX7ECx0OihfJDTNOq2LHiw55EjHehUBP2M2kPxT2pYDfGBlbTrR4GVnUpMz JmZGhUj7T5+bzyKKAmd7mR6vL6MfSI1f6QHtlQXjeVXFTWBe5+eG9Nn/HGSjXJwakIiFOa fuIqB3oBhiGXnQRzrhnMdVSnValJyOBm0zSbhrvpRX11Y94TDwxpeW7A30zLPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hbx7s2l0Bz10Bp for ; Fri, 04 Sep 2026 12:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23808 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 04 Sep 2026 12:47:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: e1d903bbfaf9 - main - buf: Avoid calling bufdomain() on newly initialized bufs List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e1d903bbfaf91060c43209b35b78a9992fbffe5e Auto-Submitted: auto-generated Date: Fri, 04 Sep 2026 12:47:37 +0000 Message-Id: <6a9abde9.23808.6b2b1c5e@gitrepo.freebsd.org> The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e1d903bbfaf91060c43209b35b78a9992fbffe5e commit e1d903bbfaf91060c43209b35b78a9992fbffe5e Author: Mark Johnston AuthorDate: 2026-09-04 12:46:29 +0000 Commit: Mark Johnston CommitDate: 2026-09-04 12:46:44 +0000 buf: Avoid calling bufdomain() on newly initialized bufs bufinit() inserts newly initialized bufs into the QUEUE_EMPTY queue, at which point they haven't yet been assigned a domain. Thus, bufdomain() returns &bdomain[-1], which trips the array-bounds sanitizer. This is harmless since we don't use the result in that case, but let's avoid the invalid access to begin with. This is sufficient to let an amd64 kernel boot to a login prompt with -fsanitize=array-bounds configured. Reported by: Andrew Griffiths Reviewed by: rlibby, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D59381 --- sys/kern/vfs_bio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index cb45ca7c75b7..868d7de7d6c8 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -2032,16 +2032,13 @@ bd_flushall(struct bufdomain *bd) static void bq_insert(struct bufqueue *bq, struct buf *bp, bool unlock) { - struct bufdomain *bd; - if (bp->b_qindex != QUEUE_NONE) panic("bq_insert: free buffer %p onto another queue?", bp); - bd = bufdomain(bp); if (bp->b_flags & B_AGE) { /* Place this buf directly on the real queue. */ if (bq->bq_index == QUEUE_CLEAN) - bq = bd->bd_cleanq; + bq = bufdomain(bp)->bd_cleanq; BQ_LOCK(bq); TAILQ_INSERT_HEAD(&bq->bq_queue, bp, b_freelist); } else { @@ -2054,12 +2051,15 @@ bq_insert(struct bufqueue *bq, struct buf *bp, bool unlock) bp->b_subqueue = bq->bq_subqueue; if (bp->b_qindex == QUEUE_CLEAN) { + struct bufdomain *bd; + /* * Flush the per-cpu queue and notify any waiters. * * Unlock before we notify so that we don't wakeup a waiter * that fails a trylock on the buf and sleeps again. */ + bd = bufdomain(bp); if (bd->bd_wanted || (bq != bd->bd_cleanq && bq->bq_len >= bd->bd_lim)) { if (unlock) {