[Openvpn-devel,v2] multi: Fix wrong usage of mroute_extract_openvpn_sockaddr

Message ID 20251021193147.26778-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v2] multi: Fix wrong usage of mroute_extract_openvpn_sockaddr | expand

Commit Message

Gert Doering Oct. 21, 2025, 7:31 p.m. UTC
From: Frank Lichtenheld <frank@lichtenheld.com>

maddr.proto needs to be set before the call since that
will change the behavior.

Found by GCC "'maddr.proto' is used uninitialized"

Change-Id: I76babf08b041162ddedf7a9b7c2799847f15cbdc
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Gianmarco De Gregori <gianmarco@mandelbit.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1292
---

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/+/1292
This mail reflects revision 2 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>
Gianmarco De Gregori <gianmarco@mandelbit.com>

Comments

Gert Doering Oct. 21, 2025, 7:45 p.m. UTC | #1
Bad API hack, correct fix...  verified by going to mroute.c and 
reading up on what mroute_extract_openvpn_sockaddr() does with
"addr.proto" which should be an *output* structure, but this
field is used as input as well...  can someone fix this for good,
please, after 2.7 release?

(Quite an impressive find by GCC)

Your patch has been applied to the master branch.

commit 0abf6e716b5a50b2b7f4287b1d50f4889eed36aa
Author: Frank Lichtenheld
Date:   Tue Oct 21 21:31:40 2025 +0200

     multi: Fix wrong usage of mroute_extract_openvpn_sockaddr

     Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Acked-by: Gianmarco De Gregori <gianmarco@mandelbit.com>
     Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1292
     Message-Id: <20251021193147.26778-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg33830.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c
index e907524..fa9c654 100644
--- a/src/openvpn/multi.c
+++ b/src/openvpn/multi.c
@@ -3965,9 +3965,9 @@ 
     saddr.addr.in4.sin_family = AF_INET;
     saddr.addr.in4.sin_addr.s_addr = htonl(addr);
     saddr.addr.in4.sin_port = htons(port);
+    maddr.proto = proto;
     if (mroute_extract_openvpn_sockaddr(&maddr, &saddr, true))
     {
-        maddr.proto = proto;
         hash_iterator_init(m->iter, &hi);
         while ((he = hash_iterator_next(&hi)))
         {