From: Heiko Hund Date: Sun, 23 Nov 2025 11:58:46 +0000 (+0100) Subject: iservice: make sure registry string is terminated X-Git-Tag: v2.7_rc3~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1c41b0acb6905506ad35e339396206653fee5cc;p=thirdparty%2Fopenvpn.git iservice: make sure registry string is terminated When reading the interface domains from the registry, check that the string is zero terminated, since the code in GetItfDnsDomains depends on the fact when doing size calculations during the conversion. Reported-by: Marc Heuse Reported-by: stephan@srlabs.de Change-Id: Icaeca22bdbd8ead0cb12345b1bcc2b5c0f46236f Signed-off-by: Heiko Hund Acked-by: Gert Doering Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1392 Message-Id: <20251123115851.19555-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34610.html Signed-off-by: Gert Doering --- diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index d778e8984..860375d17 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -2163,7 +2163,7 @@ GetItfDnsDomains(HKEY itf, PCWSTR search_domains, PWSTR domains, PDWORD size) { *size = buf_size; err = RegGetValueW(itf, NULL, values[i], RRF_RT_REG_SZ, NULL, (PBYTE)domains, size); - if (!err && *size > one_glyph && wcschr(domains, '.')) + if (!err && *size > one_glyph && domains[(*size / one_glyph) - 1] == '\0' && wcschr(domains, '.')) { /* * Found domain(s), now convert them: