From: Heiko Hund <he...@ist.eigentlich.net> The size of the returned MULTI_SZ wide domains string was calculated wrongly. Instead of adding the size of a WCHAR, only the size of a char was used. As a result, the domains string was stored too short and was missing the final string terminator.
DHCP assigned DNS server addresses are separated by space, not comma. These spaces were not replaced by semicolon, as the spec requires. Fixes: OpenVPN/openvpn#747 Change-Id: Ie3fcd845344fd0c3ce9a2f99612fb19fe5ebb2f1 Signed-off-by: Heiko Hund <he...@ist.eigentlich.net> Acked-by: Lev Stipakov <lstipa...@gmail.com> --- 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/+/1028 This mail reflects revision 3 of this Change. Acked-by according to Gerrit (reflected above): Lev Stipakov <lstipa...@gmail.com> diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index a1581a6..bea8277 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -2226,7 +2226,7 @@ { /* This was the last domain */ *pos = '\0'; - *size += 1; + *size += one_glyph; return wcslen(domains) ? NO_ERROR : ERROR_FILE_NOT_FOUND; } } @@ -2248,13 +2248,13 @@ memmove(pos + 1, pos, buf_size - converted_size - one_glyph); domains[buf_len - 1] = '\0'; *pos = '.'; - *size += 1; + *size += one_glyph; if (!comma) { /* Conversion is done */ *(pos + domain_len) = '\0'; - *size += 1; + *size += one_glyph; return NO_ERROR; } @@ -2409,10 +2409,10 @@ if (v4_addrs_size || v6_addrs_size) { - /* Replace comma-delimters with semicolons, as required by NRPT */ + /* Replace delimters with semicolons, as required by NRPT */ for (int j = 0; j < sizeof(data[0].addresses) && data[i].addresses[j]; j++) { - if (data[i].addresses[j] == ',') + if (data[i].addresses[j] == ',' || data[i].addresses[j] == ' ') { data[i].addresses[j] = ';'; } _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel