[Openvpn-devel,v3] iservice: return correct size when domains are truncated

Message ID 20251126104315.4776-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v3] iservice: return correct size when domains are truncated | expand

Commit Message

Gert Doering Nov. 26, 2025, 10:43 a.m. UTC
From: Heiko Hund <heiko@ist.eigentlich.net>

In case not all domains can be converted in the available buffer, return
the size of the already converted domains size plus the second terminating
zero for the MULTI_SZ.

Reported-by: Marc Heuse <marc@srlabs.de>
Reported-by: stephan@srlabs.de
Change-Id: Iabad046c930dd0f38ec50d1c43d8b3288816df7d
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/+/1391
---

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

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>

Comments

Gert Doering Nov. 26, 2025, 11:05 a.m. UTC | #1
This does what it says - return the correct overall size (either 0, or
"what we have so far + extra 0 byte, counting the latter as wchar = glyph").

Your patch has been applied to the master branch.

commit aeda359efaeae3d2d77f7a89223fa1b5bcac2c90
Author: Heiko Hund
Date:   Wed Nov 26 11:43:07 2025 +0100

     iservice: return correct size when domains are truncated

     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/+/1391
     Message-Id: <20251126104315.4776-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34680.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
index 9c533c1..5fb7f2b 100644
--- a/src/openvpnserv/interactive.c
+++ b/src/openvpnserv/interactive.c
@@ -2214,7 +2214,7 @@ 
                 {
                     /* Domain doesn't fit, bad luck if it's the first one */
                     *pos = '\0';
-                    *size = converted_size == 0 ? 0 : *size + 1;
+                    *size = converted_size == 0 ? 0 : converted_size + one_glyph;
                     return ERROR_MORE_DATA;
                 }