git: a3bb4c38f3be - 2021Q2 - net/wireguard-kmod: Add patch to fix panic due to missing epoch tracking in transmit
Bernhard Froehlich
decke at FreeBSD.org
Sun Apr 25 18:34:36 UTC 2021
The branch 2021Q2 has been updated by decke:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a3bb4c38f3be163c3bacc24efa49e853e62b717c
commit a3bb4c38f3be163c3bacc24efa49e853e62b717c
Author: Bernhard Froehlich <decke at FreeBSD.org>
AuthorDate: 2021-04-25 18:29:29 +0000
Commit: Bernhard Froehlich <decke at FreeBSD.org>
CommitDate: 2021-04-25 18:33:47 +0000
net/wireguard-kmod: Add patch to fix panic due to missing epoch tracking in transmit
Obtained from: https://git.zx2c4.com/wireguard-freebsd/commit/?id=e03bf597383cef7f16c41fa4952a6b04093e9e64
(cherry picked from commit 98c107c85696297c2a1ec986b3f76e67f7590771)
---
net/wireguard-kmod/Makefile | 1 +
.../patch-e03bf597383cef7f16c41fa4952a6b04093e9e64 | 52 ++++++++++++++++++++++
2 files changed, 53 insertions(+)
diff --git a/net/wireguard-kmod/Makefile b/net/wireguard-kmod/Makefile
index 938c094e8296..e0565d48f874 100644
--- a/net/wireguard-kmod/Makefile
+++ b/net/wireguard-kmod/Makefile
@@ -1,6 +1,7 @@
PORTNAME= wireguard-kmod
PORTVERSION= 0.0.20210424
+PORTREVISION= 1
CATEGORIES= net net-vpn
MASTER_SITES= https://git.zx2c4.com/wireguard-freebsd/snapshot/
DISTNAME= wireguard-freebsd-${PORTVERSION}
diff --git a/net/wireguard-kmod/files/patch-e03bf597383cef7f16c41fa4952a6b04093e9e64 b/net/wireguard-kmod/files/patch-e03bf597383cef7f16c41fa4952a6b04093e9e64
new file mode 100644
index 000000000000..1705a0f9a69f
--- /dev/null
+++ b/net/wireguard-kmod/files/patch-e03bf597383cef7f16c41fa4952a6b04093e9e64
@@ -0,0 +1,52 @@
+From e03bf597383cef7f16c41fa4952a6b04093e9e64 Mon Sep 17 00:00:00 2001
+From: "Jason A. Donenfeld" <Jason at zx2c4.com>
+Date: Sun, 25 Apr 2021 10:45:39 -0400
+Subject: if_wg: re-add epoch tracking to transmit
+
+This was accidentally removed before. We need it to work around v6 core
+bugs.
+
+Signed-off-by: Jason A. Donenfeld <Jason at zx2c4.com>
+---
+ src/if_wg.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/if_wg.c b/src/if_wg.c
+index 095a4f37f8dc..0c2565ce56c0 100644
+--- if_wg.c
++++ if_wg.c
+@@ -2063,6 +2063,7 @@ error:
+ static int
+ wg_transmit(struct ifnet *ifp, struct mbuf *m)
+ {
++ struct epoch_tracker et;
+ struct wg_packet *pkt = m->m_pkthdr.PH_loc.ptr;
+ struct wg_softc *sc = ifp->if_softc;
+ struct wg_peer *peer;
+@@ -2070,6 +2071,7 @@ wg_transmit(struct ifnet *ifp, struct mbuf *m)
+ int rc = 0;
+ sa_family_t peer_af;
+
++ NET_EPOCH_ENTER(et);
+ /* Work around lifetime issue in the ipv6 mld code. */
+ if (__predict_false((ifp->if_flags & IFF_DYING) || !sc)) {
+ rc = ENXIO;
+@@ -2109,11 +2111,15 @@ wg_transmit(struct ifnet *ifp, struct mbuf *m)
+ wg_queue_push_staged(&peer->p_stage_queue, pkt);
+ wg_peer_send_staged(peer);
+ noise_remote_put(peer->p_remote);
++ NET_EPOCH_EXIT(et);
++
+ return (0);
+ err_peer:
+ noise_remote_put(peer->p_remote);
+ err:
+ if_inc_counter(sc->sc_ifp, IFCOUNTER_OERRORS, 1);
++ NET_EPOCH_EXIT(et);
++ /* TODO: send ICMP unreachable? */
+ wg_packet_free(pkt);
+ return (rc);
+ }
+--
+cgit v1.2.3-11-g984f
+
More information about the dev-commits-ports-branches
mailing list