From nobody Thu Jul 30 12:50:05 2026 X-Original-To: dev-commits-src-all@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 4h9pvQ5J6sz6nSLP for ; Thu, 30 Jul 2026 12:50:10 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h9pvQ4R02z3PyS for ; Thu, 30 Jul 2026 12:50:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785415810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+o1m6DBypaAkAhZxv+c2pD9O8E5JhRPPuwqMjK34xe8=; b=kbzUfSAr1hg9oHfGDr26CkwLLDHotEtVK9gUWH4lZ1/VccasluXJN+uWfqHadePe/L4gZ2 +gf/Zi5DJV5NjUV3C/zKRcqcLCFqJ5AFvlYyhI9ruruMNIHOsoJj/9j8yKL4ktsTIEuyBI M/l7EJivB+VsmOt6ZjhLittcwEHJHjQ/k2mQlPzgw/5ss5pJLpLn9gSXCIfrEKkYuqVhOD KFyCWXL1Q1fhLsxP8cI8tss3tqT0+gPYvLMiEVertLZ2CWPojFZTgokdenNi7yiSMm1sOJ vHryczNlB9WBdabPcLG2HznnV1pYRBzvyBOGUzUqEUHd1FpgtllWrrJrGnSFUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785415810; a=rsa-sha256; cv=none; b=I3cYdMLoCzr0DnRrLHtEg0K5LMAaUM2TfmTTBO/0bMeMOHJUZtt0b8j14R0jNfeTVwR8bL oMskQtw4T9ZIo0mnuu/cWtnUsCgKmSQIBP87iAzDzIq76Oh7JYHe+L+9+/Ulinq0uT6t1h 8wF5UxuuE52e2JTAq4z1Of+ISigI0SMrfAmxRN9up+P2o3HiTnL2hzcyCglHY4Y5Fi1V0t EtEVoSUvmxJvfBzpHPDdxb4UbQu9MIE/wIkvzICgyRgSlc9z9Nu2nmvTXtPwPgBGbf5T61 wT1Al2CiHpTjCpw0vwNrXmegOnZ/X3QBZ/raY/SeV0bLhTrzI4aSNzMYyJYNrA== 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=1785415810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+o1m6DBypaAkAhZxv+c2pD9O8E5JhRPPuwqMjK34xe8=; b=U/m2fPlTApnM6sc8VSTTqURjA3+MsR5JTTS8L3N+8edNDDVwgAbx8ZZGOaKMjkIbXXEVgG hlC6KjVslinNJHHddaxCYX4h686T3ZdtkDvHBAv+ZSvR0mR16DaSWSG1zSBPnViRo6Z3ci 4LPWw+J0But1+Gg578tssvcO69Wv7OxY5wEP4PjhyxONgXhnAHY+AgmrHVjkpkFNj5s3zT HTz1KTZT0rsFcZ9j55Jkcn/rTmj8FG5U2sPTQvg3cp3zZdXRc8fEwNfhrUWKY97Uv8CALZ oKyXx+uzul6BopES65zDp7Ss4bgE+y9LmTcUAYlInHy7KLrVGJFC3f3W3P2sww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h9pvQ2w25z1Cq5 for ; Thu, 30 Jul 2026 12:50:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43a67 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 30 Jul 2026 12:50:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: KUROSAWA Takahiro From: John Baldwin Subject: git: 25165e4499e1 - main - mbuf: Make m_unshare() fail on KTLS mbufs List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 25165e4499e17f4f75fcf7fe7691fc7f865d4015 Auto-Submitted: auto-generated Date: Thu, 30 Jul 2026 12:50:05 +0000 Message-Id: <6a6b487d.43a67.2dba668b@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=25165e4499e17f4f75fcf7fe7691fc7f865d4015 commit 25165e4499e17f4f75fcf7fe7691fc7f865d4015 Author: KUROSAWA Takahiro AuthorDate: 2026-07-30 12:30:03 +0000 Commit: John Baldwin CommitDate: 2026-07-30 12:30:25 +0000 mbuf: Make m_unshare() fail on KTLS mbufs Commit f2202ab5abda did not account for KTLS mbufs. m_unshare() tries to linearize the original mbuf chain and creates a writable copy of it, converting unmapped mbufs. Both of them are unsafe for KTLS mbufs. It is better to return NULL if the mbuf chain contains a KTLS mbuf. Reported by: jhb Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D58466 --- sys/kern/uipc_mbuf.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index ffdd115e3e0a..3f7841721a86 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -2147,6 +2147,15 @@ m_unshare(struct mbuf *m0, int how) mprev = NULL; for (m = m0; m != NULL; m = mprev->m_next) { + /* + * m_unshare() can not process KTLS mbufs because they must + * neither be linearized nor converted to mapped. + */ + if (mbuf_has_tls_session(m)) { + m_freem(m0); + return (NULL); + } + /* * Regular mbufs are ignored unless there's a cluster * in front of it that we can use to coalesce. We do