[Openvpn-devel,v1] Fix wrong byte order of --dns server

Message ID 20250731152912.21826-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v1] Fix wrong byte order of --dns server | expand

Commit Message

Gert Doering July 31, 2025, 3:29 p.m. UTC
From: Lev Stipakov <lev@openvpn.net>

We already fixed it in commit 82fd89a04f, but
the fix got lost in 2dfc4f8.

tuntap_options require host byte order, and we store
dns servers in struct dns_server in network byte order,
what we got from getaddrinfo().

Fix (again) by converting to the host byte order.

Change-Id: I37ca672f05e9d77ec586fa28dadc6dc752e574fb
Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1125
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>

Comments

Gert Doering July 31, 2025, 3:43 p.m. UTC | #1
Yeah, git rebase accident in the "offending" patch (patch was written,
bug was fixed in the "to-be-moved" code, git rebase adjusted the "old"
side, but had no way to fix this for the "new" side and nobody noticed).

Let's try to get better DNS coverage into the automated Windows test rig.

As for the test, just stared at the code and did a windows compile test -
as Lev wrote, we have fixed this bug before (doubly annoying).

Your patch has been applied to the master branch.

commit 63fed92c96c23e061a64683cab431db1269e3f73
Author: Lev Stipakov
Date:   Thu Jul 31 17:29:06 2025 +0200

     Fix wrong byte order of --dns server

     Signed-off-by: Lev Stipakov <lev@openvpn.net>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Message-Id: <20250731152912.21826-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg32460.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 3ceada0..ff9addd 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -3573,7 +3573,7 @@ 
             {
                 if (s->addr[i].family == AF_INET && tt->dns_len + 1 < N_DHCP_ADDR)
                 {
-                    tt->dns[tt->dns_len++] = s->addr[i].in.a4.s_addr;
+                    tt->dns[tt->dns_len++] = ntohl(s->addr[i].in.a4.s_addr);
                 }
                 else if (tt->dns6_len + 1 < N_DHCP_ADDR)
                 {