From nobody Mon Feb 28 15:39:10 2022 X-Original-To: dev-commits-src-branches@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 7C3B819EB31D; Mon, 28 Feb 2022 15:39:12 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4K6l0v1qTHz4sKT; Mon, 28 Feb 2022 15:39:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646062751; 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=1J6+DVe+goV13D50susj6KXbg2UsFIfXd1oP8BSLYLk=; b=qt//bZlGcCmZGKRU9gnk5RDoibjLCPOYrl2w2gGXCnWVxbNQ4i/Pv/+AyjRCzG+a0+yr1M zLkc9zLWF8VQt2Pf/vDMvLIV2BzUCY3HKdAy/BlARm5RVFiCJlmpz2eP0118kCIcEMVbQQ r9onCAPZfdAnGv6cZb9zbJZe2Hun3IGulNoWlMAOhL3sQCmNpJFJxE6Y/qBwcBDL4yPrOx KZ7GgpGQ04gH+nraq25sZf05REZimX3ueuuq0QxPg+2l+/P6VZQFC8XQieaqRz4KIgb/58 kM61QtC10AaWtrCK2VnWN/6NnkUPIu6lbLNaGSKR6okbBEFc/PKboCSxxtC7DA== 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 061B81DE43; Mon, 28 Feb 2022 15:39:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21SFdAF4085469; Mon, 28 Feb 2022 15:39:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21SFdA4s085468; Mon, 28 Feb 2022 15:39:10 GMT (envelope-from git) Date: Mon, 28 Feb 2022 15:39:10 GMT Message-Id: <202202281539.21SFdA4s085468@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 6929fea00ddd - stable/12 - bridge: Don't share broadcast packets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/12 X-Git-Reftype: branch X-Git-Commit: 6929fea00dddb78053403d8a674b3bda6a91fd47 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646062751; 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=1J6+DVe+goV13D50susj6KXbg2UsFIfXd1oP8BSLYLk=; b=gkmVxlVCbyYpTIL0v8cyTHoYwTIuQzNhVLqKa9qz2QfvcJ2cuXiRv1ZKj6SlMb0gdOBR+e omuaFykoj296z7zdwezjA5NW4Ib8NaIDkeFhFanC0cm2gB4t4RPXtDDfKcoQxDVtgZkyU7 WZilbfygidkHWhMQ/PEx2xMSKt0O13YENgDysbu+7KqeUInpy1lAASAzPnsY7+gzHb3OUG GwdEedQP1/u84i375GYzfWDP01zhNXCJmJDTRZqO78hiiIt5JSa3W2yG8g892J/pCIErD8 dwkI5eZJBFg7KAf4u6eetdhOvCXggw4a8PzB+lNce2HAUeMEyMFqT/c3hnKn8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1646062751; a=rsa-sha256; cv=none; b=kDvgZ5270+YzD80jAxZx/7YOUM2UTZV1Bfn3hwqGYicE6SMoZAxYi3xTsV05KLcgWJnc3Q +ZX6I7bzP/OlEk9LKkv8o/mVz3x7QhmH09SPMeSC1yUlEg0/bJUHpbOEfH1GvlBbsyAH9e GieJvjhQCRfXAGKBWBRBMCZoC7aAdqq2DZ0JeK1biYh8Rq5UAJJEAWzD+FQGEPL5wPt1Cd rrC3X6lFVEn2xOaZcpf2bsT8YFxhRcwACHN7vRwJC5rmIeD+mnywnhGxKPn6D/7zWMgAQD CYOxoTTuvRpZ8GsnNia7xSHsq/pkLbdL2cyinLozJFBUbfJ+OqCtDogrWkqegg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=6929fea00dddb78053403d8a674b3bda6a91fd47 commit 6929fea00dddb78053403d8a674b3bda6a91fd47 Author: Kristof Provost AuthorDate: 2022-02-19 15:34:31 +0000 Commit: Kristof Provost CommitDate: 2022-02-26 08:26:16 +0000 bridge: Don't share broadcast packets if_bridge duplicates broadcast packets with m_copypacket(), which creates shared packets. In certain circumstances these packets can be processed by udp_usrreq.c:udp_input() first, which modifies the mbuf as part of the checksum verification. That may lead to incorrect packets being transmitted. Use m_dup() to create independent mbufs instead. Reported by: Richard Russo Reviewed by: donner, afedorov MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D34319 (cherry picked from commit 36637dd19dba79088e53c6f2aa026415eae9f8f0) --- sys/net/if_bridge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 22bcc84d44ef..cfa6eb88757d 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -2205,7 +2205,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa, used = 1; mc = m; } else { - mc = m_copypacket(m, M_NOWAIT); + mc = m_dup(m, M_NOWAIT); if (mc == NULL) { if_inc_counter(sc->sc_ifp, IFCOUNTER_OERRORS, 1); continue; @@ -2786,7 +2786,7 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) if ((dst_if->if_drv_flags & IFF_DRV_RUNNING) == 0) continue; - mc = m_copypacket(m, M_NOWAIT); + mc = m_dup(m, M_NOWAIT); if (mc == NULL) { if_inc_counter(sc->sc_ifp, IFCOUNTER_OERRORS, 1); continue;