From nobody Tue Oct 13 15:55:34 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 4j3zSk4YXBz6vZMH for ; Tue, 13 Oct 2026 15:55:34 +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 4j3zSk38Xqz4RhD for ; Tue, 13 Oct 2026 15:55:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791906934; 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=bytk4X5zUuNUimXou2OZvNufB3MJwO84VOrqRnhX39w=; b=JWwfpFmnvHZrnNxvHQ3KjWBiVOmJ4hIcE1jI0BdXB33WcSMK93O9EXQIwLJCeqtPceLXyN z1aoNhT1X7zeUF5bCBF8Ekl6EK/kHwNkxwPhRNb9TTr7OBJQpqfZsWCfJcIVQ7dcZddoBW Ir0ei2Zg+RsE2NfNyo9qYv78aFQNTIAgiHe16XRLMO3qQkOgq3xO0cWx7LIEWGSiwboppY 1KqupiCQMXVA94tc+a84OZF35dvRjcF1Ec2dTviWoej8cCF23xdMx2Yu88mKrrcpf0lBBx jha3ZxXk2LsUIIynyp2DajcfT1oVK5zAqcFKB/eZGZAW3jSL3s4DwDJIR72a3g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791906934; b=RnqKkFMxf0WrE+mlxwTH4PzIL20Bzkzv5UXEhzfJShm9D9aJC3Ytj4yqXm/bhU7KGAvACM GvqQiIU1XtFRxyqRY+qixQmX0Nwo3l6O4QxD8WpLGgD4fKKy8VZT9424nShCN7+QSiXl/2 UFX3oaMbJBPd3yuveAzSjIUPgO7UERNCKAo+ZnxYa9bUTYkIf4hcdCptvrqfdbcQhYHJ+X QsplM64xDwo9kObDpQE7gO3CYG1WbAB0Xq3+eUpTZToYRV/UX3Na0wDWz0/WhKXjJ1ijjJ 4dpm5vIpItW5kfCZeuK8XZ1hraRxYPzo9SAlyxaWLoEEgVka1MBgzZUZqMQS0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791906934; 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=bytk4X5zUuNUimXou2OZvNufB3MJwO84VOrqRnhX39w=; b=FGohcluz0n2AlMpsGeEqwnKYMwOqSfJ3YNSjzxJCOXoD/oUf7HA3YJrHbgV6lln8R1gmCl ux9TQrh5sv7F2u8OaxGXJDE/2jFXWImDqbQn9+KcTJE+bZQF13hdjRDeePw7vlInAe80Jj /FxFlYvSOoA+4h0rIdtSeRvKcXNtyl8Fi6c2bJZJJwQYa4rTRbUYpcm8wSxWmP0NDtp6Ed Ktolkzj9TaCstIRgWxM+eiZr5qOaTyLTnkty9cN89jkTzQ/SWBWiUqyS9iYx07z84Y7w7F MLGpoRh7DjK3xb0fwZYLfhnUTAkWx1023hyQrD0YYYQMe0wGXPzZ31K/2YIWLw== 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 4j3zSk24ZSzKkT for ; Tue, 13 Oct 2026 15:55:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 226ac by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 13 Oct 2026 15:55:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: R. Christian McDonald Subject: git: 989d72fd3d35 - main - pf: Free a table entry that cannot be routed List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: Commit messages for the main branch of the src repository 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: rcm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 989d72fd3d35daa6a056afdd0c6b0aba4c5d8ccf Auto-Submitted: auto-generated Date: Tue, 13 Oct 2026 15:55:34 +0000 Message-Id: <6ace5476.226ac.2ba4348@gitrepo.freebsd.org> The branch main has been updated by rcm: URL: https://cgit.FreeBSD.org/src/commit/?id=989d72fd3d35daa6a056afdd0c6b0aba4c5d8ccf commit 989d72fd3d35daa6a056afdd0c6b0aba4c5d8ccf Author: R. Christian McDonald AuthorDate: 2026-10-13 15:53:00 +0000 Commit: R. Christian McDonald CommitDate: 2026-10-13 15:53:00 +0000 pf: Free a table entry that cannot be routed pfr_insert_kentry() returned the error of pfr_route_kentry() and leaked the entry it had created; pfr_insert_kentries() stopped at the first entry it could not route and leaked it and the rest of the work queue, which no caller frees. Destroy an entry that cannot be routed and go on with the next. Reviewed by: kp MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60532 --- sys/netpfil/pf/pf_table.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/netpfil/pf/pf_table.c b/sys/netpfil/pf/pf_table.c index 94ea5181ee74..2450feddaded 100644 --- a/sys/netpfil/pf/pf_table.c +++ b/sys/netpfil/pf/pf_table.c @@ -850,15 +850,16 @@ static void pfr_insert_kentries(struct pfr_ktable *kt, struct pfr_kentryworkq *workq, time_t tzero) { - struct pfr_kentry *p; + struct pfr_kentry *p, *q; int rv, n = 0; - SLIST_FOREACH(p, workq, pfrke_workq) { + SLIST_FOREACH_SAFE(p, workq, pfrke_workq, q) { rv = pfr_route_kentry(kt, p); if (rv) { printf("pfr_insert_kentries: cannot route entry " "(code=%d).\n", rv); - break; + pfr_destroy_kentry(p); + continue; } p->pfrke_counters.pfrkc_tzero = tzero; n++; @@ -880,8 +881,10 @@ pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, time_t tzero) return (ENOMEM); rv = pfr_route_kentry(kt, p); - if (rv) + if (rv) { + pfr_destroy_kentry(p); return (rv); + } p->pfrke_counters.pfrkc_tzero = tzero; kt->pfrkt_cnt++;