From nobody Fri Feb 21 10:43:26 2025 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 4Yzmv30FfBz5pZhL; Fri, 21 Feb 2025 10:43:27 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Yzmv26mC3z3jD2; Fri, 21 Feb 2025 10:43:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740134607; 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=DtCJC0evhmYVCwIqNF2wfhuP3WcKzbgWLSjXy0TBxfs=; b=TkbqdTnfuNbu+IPN96Js+EZUfLfAX60ArjlrlqtNNY+ww+zJELakjcEoAftsmLgTzVqS8l 153wXUb2m555rYKBpYHEuuRVwtB9a+F5Tg/7s7soTx7KMcXJDmLio2aQZoNUgV8ybuN0d8 OUxkEbI2JlXz3HDjaVi71nU0OkIb6OPGWlPuzR+YUVQsxI1MySnenDd+nu6yT6WEQVgvq7 CEqc+cqQuB31zsQ0ycRya5GOlthJ3/fwU4RefE0c9/Bnn8I5uEnHtzYHih6wE/udovV8r8 1yag8f/4vcqdV7pp2JjCGCA7TkQbAH6ayhiIRwuQ9CwiItOsHnB2oRReEVgdLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740134607; a=rsa-sha256; cv=none; b=OA2/VClqmkqyTKw62gB6Ah8ProvAK+oHdIAtubveMmZf/dAMNfK7O0gflG8YGhFRDp42iA 5kGgbGjG4fJlwdnKaV96fNp+PnRoCjisx6GZpz2TKaac8j0Is9fty6hCEu9uHWD6mzDLSM AjTnlmvOeyFSjpDnKRPm6MkHO6zHfvDovxBS+6qT3DM3psEgIuns6oEqbJQIvnuaX7R5e+ sFrbBl2IlaEMXrOXWyquIJGnzqG+NHllsPDhv7UlakERgK4GUeskA9fHoWyFX3RjPuj4Rv Wkko6+yT/seXdxx+HiHtH/wyZCgqYxoWMvQJtmd3nSjCoswculIWTUioMhfUtQ== 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=1740134606; 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=DtCJC0evhmYVCwIqNF2wfhuP3WcKzbgWLSjXy0TBxfs=; b=eVcfE7ENoje2GYocwdp+KQF53PN4cxfovcZij2ajkAd1eGxLLlehg4I5oW98xKhHjydFkT gxKFiHS8EpHJNwzuBbbiyiH5PEu5bjfsoLKKBNlSLd9A+BQv6n/UpesFd7YgVRPxmPc3Ag z8yrnvzraALmlX0CsLXvhkxsXGhFld2u9MDOmFXr77uRgbAEe0GEnozjNMPPSnbr1jglkF +yj4f7OuJwOUsv2FPxVQ1ZrSKXd83PKjkEemWEv4IbQxGubX4FLp9tDgRSnoI3sVWlHwPi QAgHB3dRqWPbPtTNNkjBt6bUM1g0d3PAHc30EMIxt6lNANL2dBRJekK9jWOLSQ== 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 4Yzmv269yyz3wf; Fri, 21 Feb 2025 10:43:26 +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 51LAhQ5x057994; Fri, 21 Feb 2025 10:43:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51LAhQ6F057990; Fri, 21 Feb 2025 10:43:26 GMT (envelope-from git) Date: Fri, 21 Feb 2025 10:43:26 GMT Message-Id: <202502211043.51LAhQ6F057990@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: 27cb3328173e - main - pf: micro-optimise padding check 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 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: 27cb3328173e4de80fad90c3b794b3eb0320d69a Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=27cb3328173e4de80fad90c3b794b3eb0320d69a commit 27cb3328173e4de80fad90c3b794b3eb0320d69a Author: Kristof Provost AuthorDate: 2025-02-14 15:23:53 +0000 Commit: Kristof Provost CommitDate: 2025-02-21 09:16:52 +0000 pf: micro-optimise padding check In most cases, IP fragments do not have an Ethernet padding. So add a condition to save a useless call to m_adj() and have a paranoid length check in the other cases. OK henning@ Obtained from: OpenBSD, bluhm , fcf0d61153 Obtained from: OpenBSD, chris , ebe64b684c Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf_norm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index ac74434cf2b7..98539be8c6ce 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -706,7 +706,8 @@ pf_join_fragment(struct pf_fragment *frag) TAILQ_REMOVE(&frag->fr_queue, frent, fr_next); m = frent->fe_m; - m_adj(m, (frent->fe_hdrlen + frent->fe_len) - m->m_pkthdr.len); + if ((frent->fe_hdrlen + frent->fe_len) < m->m_pkthdr.len) + m_adj(m, (frent->fe_hdrlen + frent->fe_len) - m->m_pkthdr.len); uma_zfree(V_pf_frent_z, frent); while ((frent = TAILQ_FIRST(&frag->fr_queue)) != NULL) { TAILQ_REMOVE(&frag->fr_queue, frent, fr_next); @@ -715,7 +716,8 @@ pf_join_fragment(struct pf_fragment *frag) /* Strip off ip header. */ m_adj(m2, frent->fe_hdrlen); /* Strip off any trailing bytes. */ - m_adj(m2, frent->fe_len - m2->m_pkthdr.len); + if (frent->fe_len < m2->m_pkthdr.len) + m_adj(m2, frent->fe_len - m2->m_pkthdr.len); uma_zfree(V_pf_frent_z, frent); m_cat(m, m2);