]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
mudp.c: keep offset value when resetting buffer
authorLev Stipakov <lev@openvpn.net>
Tue, 21 Jan 2025 16:10:25 +0000 (17:10 +0100)
committerGert Doering <gert@greenie.muc.de>
Fri, 31 Jan 2025 18:10:38 +0000 (19:10 +0100)
dco-win requires control packets to be prepended
with sockaddr. For that, an offset value in buffer
must be kept. Doing it always doesn't harm and makes
code cleaner compared to adding "if (dco_win_server)"
condition.

Change-Id: I145573555aaace5e94774b5f977d032d3747ed72
Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20250121161025.37545-1-frank@lichtenheld.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30519.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/mudp.c

index 4f2bbd7a47f4cf667d440ca0b5c6ecedce860659..5f43db9b7797ab5e1a8ae1bbb60a5c030a4eaf08 100644 (file)
@@ -54,7 +54,9 @@ send_hmac_reset_packet(struct multi_context *m,
 
     struct context *c = &m->top;
 
-    buf_reset_len(&c->c2.buffers->aux_buf);
+    /* dco-win server requires prepend with sockaddr, so preserve offset */
+    ASSERT(buf_init(&c->c2.buffers->aux_buf, buf.offset));
+
     buf_copy(&c->c2.buffers->aux_buf, &buf);
     m->hmac_reply = c->c2.buffers->aux_buf;
     m->hmac_reply_dest = &m->top.c2.from;