diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-04-28 19:39:33 -0400 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-04-28 19:39:33 -0400 |
commit | a3e01095e2ea09cf19d8282cc02b85b4829d4be9 (patch) | |
tree | fdc7ee9f25d9dc88a87facf0020b0d7cfb5907c5 /src/if_wg.c | |
parent | if_wg: do not block for memory when sending buffer (diff) | |
download | wireguard-freebsd-a3e01095e2ea09cf19d8282cc02b85b4829d4be9.tar.xz wireguard-freebsd-a3e01095e2ea09cf19d8282cc02b85b4829d4be9.zip |
if_wg: write data header directly
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/if_wg.c')
-rw-r--r-- | src/if_wg.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/if_wg.c b/src/if_wg.c index 71b8a2c..13a6b66 100644 --- a/src/if_wg.c +++ b/src/if_wg.c @@ -1488,7 +1488,7 @@ wg_mbuf_reset(struct mbuf *m) static void wg_encrypt(struct wg_softc *sc, struct wg_packet *pkt) { - struct wg_pkt_data data; + struct wg_pkt_data *data; struct wg_peer *peer; struct noise_remote *remote; struct mbuf *m; @@ -1520,11 +1520,10 @@ wg_encrypt(struct wg_softc *sc, struct wg_packet *pkt) M_PREPEND(m, sizeof(struct wg_pkt_data), M_NOWAIT); if (m == NULL) goto out; - - data.t = WG_PKT_DATA; - data.r_idx = idx; - data.nonce = htole64(pkt->p_nonce); - memcpy(mtod(m, void *), &data, sizeof(struct wg_pkt_data)); + data = mtod(m, struct wg_pkt_data *); + data->t = WG_PKT_DATA; + data->r_idx = idx; + data->nonce = htole64(pkt->p_nonce); wg_mbuf_reset(m); state = WG_PACKET_CRYPTED; |