From nobody Fri Jul 04 09:22:43 2025 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 4bYSpX3R4bz61GfQ; Fri, 04 Jul 2025 09:22:44 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bYSpW5gp0z3phB; Fri, 04 Jul 2025 09:22:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751620963; 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=j85goNIBZAX10wtyBCtiKmhlP6EE9e2Pvop+aUdZ/EY=; b=R5NGNzK8NC1rt99n4qxGtEORwE2w1ELZeRtytqDbuLtM0HudOEA0lmWJ+DUZyXDgG7bVTT CaC/X4nCSNOzMhgLYhVABPW120zkCW6ulfcajpi4R0jvk/z/kP/d+UMgwf8tq7SYI2la5d TL7hXeQQQaWrlmG0/GdY6heooc18NbNOzYCutJ8F+GewbdSwp0AAs4mmAiS2XVwqW80tje mq+sI2z+6nUr6NBBw8i6LWYYI+8ULexJGsKU6KVp092s2d2QBOCsnn8uxEPC7P9xqw1iDS DaA2W0HQZelPRKRwd9d6PbwVM/PB57SnrS9yQr6FHZF9l3KolixSh+BfhMrYsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751620963; 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=j85goNIBZAX10wtyBCtiKmhlP6EE9e2Pvop+aUdZ/EY=; b=Yxor22T85nt/lVB4itK2p3IATas83PDAwOhgRS+oScM2xfZrAyx4KQxatCSaKsv7ay+1Hp HhLFIaAiAQOulzEYZcL7JL5Q0AFn69FcD1EVqzKVqjN18RvgZzh5J8CiMXwnkLR3vhMNVE sRHOHEltres9BJIP5vLrjfZHk+KglrpN+7WE0/NZU5EdiuXqkUe2140ZQq6gcHCogR5s2B vtqjtrOsZZgcZQJo4muNknVsKvlCGtqPeI86kzClOj/vQNlmAYA6iDA/A9g1AdiPDAgQ35 QBmsOgh+BrrBgjNBnF7bXZcMALjvYfrx/HRWaCEfniISBtlzjPx+0BqfxDODnA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1751620963; a=rsa-sha256; cv=none; b=gVwGDkgV0ZIewgzbq0LMw5AURFzDfox75JhXSfdbMZkBTE3OLLE8dv+btWxoB3W4Yn1b/2 kmOc48ftWqM97rlwkxwQ5wH5eTcLT/VSBRvNKrmR5JfmCoHOIWJy4aqVPl13YfFs8noJfe XMHH6U3V3f6zgKhV6JxbOSwLMdPe+ces0khPABdJZpbNT1hYhtHrRnnJUuvHbnVa23cPFO N1iaNKXmZ0ey7cxrj7SaWvJBgEJX59ytVm8PXgefjXKhYZxPp1ZEVSXI6mktRjCLP4XuJm clKj7MJKNfsCFS3D2FrUJZtFqOH1jmpA79yLZGtPaJFixgD/AB/9/ysI0uDZvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bYSpW57jrzkwp; Fri, 04 Jul 2025 09:22:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5649MhTH055926; Fri, 4 Jul 2025 09:22:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5649MhM9055921; Fri, 4 Jul 2025 09:22:43 GMT (envelope-from git) Date: Fri, 4 Jul 2025 09:22:43 GMT Message-Id: <202507040922.5649MhM9055921@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: f7289cce493d - main - pf: Check for main ruleset explicitly 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 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: f7289cce493d8db579e3e10bec2c95887c4ba52e Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f7289cce493d8db579e3e10bec2c95887c4ba52e commit f7289cce493d8db579e3e10bec2c95887c4ba52e Author: Kristof Provost AuthorDate: 2025-06-30 17:12:12 +0000 Commit: Kristof Provost CommitDate: 2025-07-04 08:31:12 +0000 pf: Check for main ruleset explicitly All rulesets reference their parent anchor, except for the special cased main anchor containing the main ruleset, which's reference is always NULL since initialization and never changes. Replacing nullity tests with clearer equality checks makes the code less ambigious and easier to understand. OK sashan Obtained from: OpenBSD, kn , 55038654e1 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf_ioctl.c | 4 ++-- sys/netpfil/pf/pf_ruleset.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index 45201f2eaec9..357b2be194a5 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -2740,7 +2740,7 @@ pf_ioctl_get_rulesets(struct pfioc_ruleset *pr) return (ENOENT); } pr->nr = 0; - if (ruleset->anchor == NULL) { + if (ruleset == &pf_main_ruleset) { /* XXX kludge for pf_main_ruleset */ RB_FOREACH(anchor, pf_kanchor_global, &V_pf_anchors) if (anchor->parent == NULL) @@ -2772,7 +2772,7 @@ pf_ioctl_get_ruleset(struct pfioc_ruleset *pr) } pr->name[0] = 0; - if (ruleset->anchor == NULL) { + if (ruleset == &pf_main_ruleset) { /* XXX kludge for pf_main_ruleset */ RB_FOREACH(anchor, pf_kanchor_global, &V_pf_anchors) if (anchor->parent == NULL && nr++ == pr->nr) { diff --git a/sys/netpfil/pf/pf_ruleset.c b/sys/netpfil/pf/pf_ruleset.c index 94e8527f6555..2e5165a9900c 100644 --- a/sys/netpfil/pf/pf_ruleset.c +++ b/sys/netpfil/pf/pf_ruleset.c @@ -339,7 +339,7 @@ pf_remove_if_empty_kruleset(struct pf_kruleset *ruleset) int i; while (ruleset != NULL) { - if (ruleset == &pf_main_ruleset || ruleset->anchor == NULL || + if (ruleset == &pf_main_ruleset || !RB_EMPTY(&ruleset->anchor->children) || ruleset->anchor->refcnt > 0 || ruleset->tables > 0 || ruleset->topen) @@ -407,7 +407,7 @@ pf_kanchor_setup(struct pf_krule *r, const struct pf_kruleset *s, } ruleset = pf_find_or_create_kruleset(path); rs_free(path); - if (ruleset == NULL || ruleset->anchor == NULL) { + if (ruleset == NULL || ruleset == &pf_main_ruleset) { DPFPRINTF("%s: ruleset\n", __func__); return (1); } @@ -432,7 +432,7 @@ pf_kanchor_copyout(const struct pf_kruleset *rs, const struct pf_krule *r, char a[MAXPATHLEN]; char *p; int i; - if (rs->anchor == NULL) + if (rs == &pf_main_ruleset) a[0] = 0; else strlcpy(a, rs->anchor->path, MAXPATHLEN);