From nobody Thu May 07 16:24:02 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 4gBHcz0pw7z6cpB4 for ; Thu, 07 May 2026 16:24:03 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gBHcy5cPmz3b5r for ; Thu, 07 May 2026 16:24:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1778171042; 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=zNUb01ErcAJA2KA+vhWeJB+m8tRZxtZZh5vH15+KcsY=; b=f/NC2vAXFGW12hshDC5oyGyFwv5nxfMiqShRnC+6MCsUpnHqw2br5rd4SzTVPJvnl1xf83 xGoI0jPyS9+xQYjmeq/3eRakpoR65jOChEiASd+VUNj0qnOIj+gTtPKKSCHMVwqTkhmqhr rpEOdA5m57eY7rm7ucSCX1dqVH/gjDWpIk2SA/K8e55jf+dnAisWSfNDLN9H0cwdngA4e9 8K6GUYtOkvQGkYVS8Qwnk1Ky1bC1wJ21728cbWjA0sG/BK9+lypR7Z0ZxDHqCzuSbsUJUZ c+Y4xXSvXBnQfqHmAvEGg+1mN5MaNlBnHQVnEMZmlmh0HbwJTNc402n0hSqP2A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1778171042; a=rsa-sha256; cv=none; b=DckxotR9kFNQo60IDFACDFZ/H3jfvvNryUbtwCfs9Zc8BTDb0yk9jhflqc3Ds9NDNI5XPK /Tts8cdiExuonrSO0UrSOHv8G6TL94J/HMKsoaJGoQSNkZl/IOtmxiOXt5Ty/8qqq6juPx qdU+tQr3Kv6m7kVxIZ52OiO8sL+E6UuoMkZ55I/zH2sOzhiAL11u6zGPHAHAvqbydBF82f 1FjsZHhhtBJWzLGvb89G553MsiXCqLvrTERydubQ5L98U9QfM9ffAES2TAW1pRIPzG6v0N kUWlLGdRwiqfyCHaYkxgmvab22rrlIjm8rc0jkUwBemTX92RbQ807ekRxjTFLg== 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=1778171042; 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=zNUb01ErcAJA2KA+vhWeJB+m8tRZxtZZh5vH15+KcsY=; b=eHxeNVhffWM/cRojfdRmsN4VEc72DUoTNmELd8fqM7ocpHZUj4ZNDj+IRQdr4Rqli3Df10 dFOMSp3zhIibUgC4PqpVsE65wtlJSRqln/dEZX05ywvtKk17nRwLmv+KOXYuZX5PpSiGtU t/oMCVXB1ZCMMmYuZmtg1ZoW5fBgac4IFLAzPOv+O6uZePlNvBG9aef3SkVNue0cr8KMVD 1LKyAMkuDzdXoV+o+FaxvVKiG9OX1tZBrNxo9DBKTAbBMCKO5y8dVaBsCvQelTMv4n5zDQ el7kylkg4L8YqNXqwNCHXaLflRyetxWgjff0hQw9bW2XeqH0idq/rrsRHnEHLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gBHcy3hRczZwP for ; Thu, 07 May 2026 16:24:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36ea1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 07 May 2026 16:24:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 4e7c1ff95a51 - main - pfctl: relax interface name requirement 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: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4e7c1ff95a5187faee524055f22c4cf4134d1147 Auto-Submitted: auto-generated Date: Thu, 07 May 2026 16:24:02 +0000 Message-Id: <69fcbca2.36ea1.5fb90566@gitrepo.freebsd.org> The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4e7c1ff95a5187faee524055f22c4cf4134d1147 commit 4e7c1ff95a5187faee524055f22c4cf4134d1147 Author: Kristof Provost AuthorDate: 2026-05-07 09:58:17 +0000 Commit: Kristof Provost CommitDate: 2026-05-07 15:07:23 +0000 pfctl: relax interface name requirement The FreeBSD network stack, for better or worse, does not impose any requirements on interface names. As such it's valid for an interface name to start with a number (or indeed, be something like '⭐'). Allow this in pfctl, and add a test case for the specific case of interface names starting with a number. Note that we don't support UTF-8 names fully, so those may still fail. PR: 295064 MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") --- sbin/pfctl/parse.y | 2 +- tests/sys/netpfil/pf/names.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y index 57a5140ffeb7..7e9d81da6ed9 100644 --- a/sbin/pfctl/parse.y +++ b/sbin/pfctl/parse.y @@ -4242,7 +4242,7 @@ dynaddr : '(' STRING ')' { char *p, *op; op = $2; - if (!isalpha(op[0])) { + if (op[0] == '\0') { yyerror("invalid interface name '%s'", op); free(op); YYERROR; diff --git a/tests/sys/netpfil/pf/names.sh b/tests/sys/netpfil/pf/names.sh index e47b0917cfec..c6f2a06c15f9 100644 --- a/tests/sys/netpfil/pf/names.sh +++ b/tests/sys/netpfil/pf/names.sh @@ -95,8 +95,48 @@ group_cleanup() pft_cleanup } +atf_test_case "start_number" "cleanup" +start_number_head() +{ + atf_set descr 'Test interface names starting with a number' + atf_set require.user root +} + +start_number_body() +{ + pft_init + + epair=$(vnet_mkepair) + ifconfig ${epair}a 192.0.2.1/24 up + + vnet_mkjail alcatraz ${epair}b + jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up + jexec alcatraz ifconfig ${epair}b name 4ever + jexec alcatraz pfctl -e + + jexec alcatraz ifconfig + + pft_set_rules alcatraz \ + "block" \ + "pass in from any to (4ever)" + + atf_check -o ignore ping -c 3 192.0.2.2 + + # Negative test, if the interface doesn't exist we don't pass packets + pft_set_rules alcatraz \ + "block" \ + "pass in from any to (5ever)" + atf_check -s exit:2 -o ignore ping -c 1 -t 1 192.0.2.2 +} + +start_number_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "names" atf_add_test_case "group" + atf_add_test_case "start_number" }