From d3eb09b559ef7832a236934363e3c0aa5d855307 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Wed, 13 May 2026 17:08:57 +0200 Subject: [PATCH] openvpnserv: Address some uninitVariable warnings from cppcheck In the first case this is about helping cppcheck remember that msg->addr_len and addr_len are the same thing, but we use them in confusing ways. In the second case there is indeed a theoretical code path where we use an uninitialized buffer. So make the code safer. Change-Id: Ida6d4fa8c5c5ffbd7909d6afd51b1b6f32ca2d9f Signed-off-by: Frank Lichtenheld Acked-by: Heiko Hund Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1674 Message-Id: <20260513150902.27447-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg36908.html Signed-off-by: Gert Doering (cherry picked from commit 50bcb9206b1dc3100a6b20cf569c4caf9c9105e3) --- src/openvpnserv/interactive.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index ad19e2c8..c6eb3680 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -1868,7 +1868,7 @@ HandleDNSConfigMessage(const dns_cfg_message_t *msg, undo_lists_t *lists) return err; /* job done */ } - if (msg->addr_len > 0) + if (addr_len > 0) { /* prepare the comma separated address list */ /* cannot use max_addrs here as that is not considered compile @@ -2639,25 +2639,28 @@ SetNrptRules(HKEY nrpt_key, const nrpt_address_t *addresses, const char *domains free(wide_search_domains); } - /* Create address string list */ - CHAR addr_list[NRPT_ADDR_NUM * NRPT_ADDR_SIZE]; - PSTR pos = addr_list; - for (int i = 0; i < NRPT_ADDR_NUM && addresses[i][0]; ++i) + if (addresses[0][0]) { - if (i != 0) + /* Create address string list */ + CHAR addr_list[NRPT_ADDR_NUM * NRPT_ADDR_SIZE]; + PSTR pos = addr_list; + for (int i = 0; i < NRPT_ADDR_NUM && addresses[i][0]; ++i) { - *pos++ = ';'; + if (i != 0) + { + *pos++ = ';'; + } + strcpy(pos, addresses[i]); + pos += strlen(pos); } - strcpy(pos, addresses[i]); - pos += strlen(pos); - } - WCHAR subkey[MAX_PATH]; - swprintf(subkey, _countof(subkey), L"OpenVPNDNSRouting-%lu", ovpn_pid); - err = SetNrptRule(nrpt_key, subkey, addr_list, wide_domains, dom_size, dnssec); - if (err) - { - MsgToEventLog(M_ERR, L"%S: failed to set rule %s (%lu)", __func__, subkey, err); + WCHAR subkey[MAX_PATH]; + swprintf(subkey, _countof(subkey), L"OpenVPNDNSRouting-%lu", ovpn_pid); + err = SetNrptRule(nrpt_key, subkey, addr_list, wide_domains, dom_size, dnssec); + if (err) + { + MsgToEventLog(M_ERR, L"%S: failed to set rule %s (%lu)", __func__, subkey, err); + } } if (domains[0])