| Message ID | 20251123115851.19555-1-gert@greenie.muc.de |
|---|---|
| State | New |
| Headers | show |
| Series | [Openvpn-devel,v1] iservice: make sure registry string is terminated | expand |
Trivial enough.
Not sure we really *need* this - the documentation for RegGetValueW()
states
If the data is a string, the function checks for a terminating
null character. If one is not found, the string is stored with
a null terminator if the buffer is large enough to accommodate
the extra character. Otherwise, the function fails and returns
ERROR_MORE_DATA.
which reads to me like "either we get 'err' or it is always null
terminated", so the "if (!err)" part would catch this anyway.
I have no way to actually test this beyond "does it compile" - which
it does.
Your patch has been applied to the master branch.
commit a1c41b0acb6905506ad35e339396206653fee5cc
Author: Heiko Hund
Date: Sun Nov 23 12:58:46 2025 +0100
iservice: make sure registry string is terminated
Signed-off-by: Heiko Hund <heiko@ist.eigentlich.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
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 <gert@greenie.muc.de>
--
kind regards,
Gert Doering
diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index f31a8a9..ec80a30 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -2163,7 +2163,7 @@ { *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: