From nobody Fri Sep 25 17:06:29 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 4hrxts4Pw1z6tfrR for ; Fri, 25 Sep 2026 17:06:29 +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 4hrxts3tKTz4YPj for ; Fri, 25 Sep 2026 17:06:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790355989; 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=woOZK30HHhtIOYfukt2sA6fkfcGiQlmvTn5to2PC48o=; b=k/oe9882SsFFnRYqcqpd2doDGa+MTABChQ4mExhBXFuAkrN31GwR114xys4rn/HKDqvM29 z13XUytRFIpoek6j9yy66lHrcke23vxJ/mknOiuBJse3H/g76gna71Bek84rnDf2aFACi3 Q5tj7CmpomclmpmNWKupID7C9MsfjTCJpKnzZAUvUaUDHJaSmH5/LAMlN00YET7DwjnlRp l8+z1YaT3lUH7xFTs0wju6biXF9/x/bOo8FkDEg7fisWMsQBkb4padIXOv8bLgwdZYpfMO Mo9RHXlXH7Fhs8i0qjaxl1Gsh5j6ScA9D8XL79eSClkOT6LM61NTJAFNn7OE0g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790355989; b=TmUIjZgKvn1X6tLNew/DPt200g5bnl974wdWQe66i0vt/1lHYgijgjpiJp1rdSdEHVTEhN +Me8pwKLcBHzo3rpPXGU+RD5QPlIhwzg+UmyWQF611oniw3UtUT3PJ4rTCsGSzNQ4GvwbH NWaufqxFwFcKpNNn7T+l70jNoaa8XaAJHye4QMveCaSsCqQJOGnQHIBk3t5xOhMZ39mPfs nfgt2QHK7Zr0QvYOhXGcR8kJXXp5cGFaxdSKRPzMCb7kmTjhq6NLiE2G0fAlG/XlGJMjnT M/eB45DvmErLf/2M8GNCCGARERJIUg0rBtfJUlpN/GZJIOqnwufOyVQbjTRWKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790355989; 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=woOZK30HHhtIOYfukt2sA6fkfcGiQlmvTn5to2PC48o=; b=CQ9m/BtUx3alEPs7z2dxvtYbZsu0yu9EZgvvY8MFp3cOOcJupqsU0ZS8P6+8Slxfa9/dJK zW8HbrQKxjtVHM8z9jTZXhZdOaF5Bc/9bNduParzAlZT3OHEzfoJfV2qUhVnQQm9hbHCxQ TdHMdPI/gNBRYGFLGvN+MNa/h4jCZXVAGkPlmXLpUtF1O4EXbf08nYn8e8tkVGKa+1tKeP 0LDNKimedETVzB5DJTn5MrdQvTGmBwv9aCRwlGr3sdopuaC5Fj5+6k22RXPETe0bpqpFqi hrHLHZt34uTT6SmWEC/KoscPEl0x8JJoixHl9IWTIYoG6RXK6M7Seaak/+sqoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hrxts2dkDzJPC for ; Fri, 25 Sep 2026 17:06:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bd59 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 25 Sep 2026 17:06:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: 287d60af1812 - main - compat/linux: Fix IFLA_IFNAME translation for multi-message netlink 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 287d60af18126ee0750fa2332896ede2b84a12dc Auto-Submitted: auto-generated Date: Fri, 25 Sep 2026 17:06:29 +0000 Message-Id: <6ab6aa15.1bd59.65fafe0f@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=287d60af18126ee0750fa2332896ede2b84a12dc commit 287d60af18126ee0750fa2332896ede2b84a12dc Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-09-25 16:41:36 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-09-25 17:05:36 +0000 compat/linux: Fix IFLA_IFNAME translation for multi-message netlink nlmsg_translate_ifname_nla() always used nw->ifp for the name, which is fine for a single-message ifnet event, but an RTM_GETLINK dump holds one RTM_NEWLINK per interface and is translated with the ifp the writer had when the buffer was flushed. The root of the problem is that msgs_to_linux() takes a single ifp for a buffer that may contain messages about many interfaces. Use ifi_index to resolve the name instead. Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D59595 --- sys/compat/linux/linux_netlink.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sys/compat/linux/linux_netlink.c b/sys/compat/linux/linux_netlink.c index ef6c52c013f9..286cc72ef337 100644 --- a/sys/compat/linux/linux_netlink.c +++ b/sys/compat/linux/linux_netlink.c @@ -245,13 +245,16 @@ nlmsg_copy_nla(const struct nlattr *nla_orig, struct nl_writer *nw) * Translate a FreeBSD interface name to a Linux interface name. */ static bool -nlmsg_translate_ifname_nla(struct nlattr *nla, struct nl_writer *nw) +nlmsg_translate_ifname_nla(struct nlmsghdr *hdr, struct nlattr *nla, + struct nl_writer *nw) { + struct ifinfomsg *ifinfo; char ifname[LINUX_IFNAMSIZ]; - if (nw->ifp == NULL) - return (false); - (void)ifname_bsd_to_linux_ifp(nw->ifp, ifname, sizeof(ifname)); + ifinfo = (struct ifinfomsg *)(hdr + 1); + if (ifname_bsd_to_linux_idx(ifinfo->ifi_index, ifname, + sizeof(ifname)) <= 0) + return (nlmsg_copy_nla(nla, nw)); return (nlattr_add_string(nw, IFLA_IFNAME, ifname)); } @@ -272,7 +275,7 @@ nlmsg_translate_all_nla(struct nlmsghdr *hdr, struct nlattr *nla, case NL_RTM_GETLINK: switch (nla->nla_type) { case IFLA_IFNAME: - return (nlmsg_translate_ifname_nla(nla, nw)); + return (nlmsg_translate_ifname_nla(hdr, nla, nw)); default: break; }