| Message ID | 20230418134011.1752777-1-selva.nair@gmail.com |
|---|---|
| State | Superseded |
| Headers |
Return-Path: <openvpn-devel-bounces@lists.sourceforge.net>
Delivered-To: patchwork@openvpn.net
Received: by 2002:a05:7300:ed0b:b0:ba:3da9:1c4f with SMTP id
oy11csp2053760dyb;
Tue, 18 Apr 2023 06:40:53 -0700 (PDT)
X-Google-Smtp-Source:
AKy350aWTAj0/45a6qztG2BnV/SKb0vrzziVzBEc5RVo/OpskHZ4yMjkMsoCzCGE7vjpupsNEWzp
X-Received: by 2002:a6b:4a05:0:b0:760:b20b:1cdc with SMTP id
w5-20020a6b4a05000000b00760b20b1cdcmr1649459iob.17.1681825253018;
Tue, 18 Apr 2023 06:40:53 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1681825253; cv=none;
d=google.com; s=arc-20160816;
b=oWNikoogL8eBGNoHTqMUsx018nOBT943VtP/A/IkClsWRCs9TgqMMMRkkKkttRJsCq
b/FvvWGVXfitPl0n0XShIitVDI+ZeKF1t53q4Coma0rY2cMF8JFz5rpWoGxJO3bbzbFv
/sy0qYIKCWMZMYgvpFA3MbN/pcPXJekCz9fRicsexM7cXz6N8Y16OShpHUNQ5fYUbKN5
crfinzywMlHKp09xatV33ke0FQDqYqJul5INDSPLXujnB0MaHB4eqbd5KEMN8HMJJCqI
AsiCbz7dRycWJThFlkKV8K9iMARCYXomvH7koqLI4pthRQ2P7lUPVtFEA9udE52Mc7z3
i0cQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20160816;
h=errors-to:content-transfer-encoding:list-subscribe:list-help
:list-post:list-archive:list-unsubscribe:list-id:precedence:subject
:mime-version:message-id:date:to:from:dkim-signature:dkim-signature
:dkim-signature;
bh=WtF+sphNtQotKgqDLl7y87wGw+s1e5bBbG7RjhpIjIc=;
b=yojRnuSZu+qAdA/LdBAaf3fw+5THqsDQUg9D3tqcKnMkDGykDLZW+hQLY0/vVHHmDP
X131I3bU5BTlsmpG6518TXKTJfis93vMXUdDnJgsksTVu4l0xYNKU6AQy1GWM4Y0h/vI
Ms5GsEbOyx9oDJXn2GAxjNZolIdHytUywwO6Of7Elj1WFL2B8WRdF7xdX8/lyLupZ1Cl
5JxgomDcDNx8uV84RGfE/MvwGVtHmtWohK39foAG9L+tsKZ7U89ikRn5zi80saPohqBW
j2bw1AbsxDiVLn8tTQd0fShlC5wH6iXlvPnUWyUBBgcc6tO0j4G5O8HxfKX3IlGph8Ud
saKA==
ARC-Authentication-Results: i=1; mx.google.com;
dkim=neutral (body hash did not verify) header.i=@sourceforge.net
header.s=x header.b="ItsXqJ/g";
dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x
header.b=ZAUyuTls;
dkim=neutral (body hash did not verify) header.i=@gmail.com
header.s=20221208 header.b=E9QGBcZ5;
spf=pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net;
dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7])
by mx.google.com with ESMTPS id
r23-20020a5d96d7000000b006f6623df639si12422059iol.7.2023.04.18.06.40.52
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Tue, 18 Apr 2023 06:40:52 -0700 (PDT)
Received-SPF: pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) client-ip=216.105.38.7;
Authentication-Results: mx.google.com;
dkim=neutral (body hash did not verify) header.i=@sourceforge.net
header.s=x header.b="ItsXqJ/g";
dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x
header.b=ZAUyuTls;
dkim=neutral (body hash did not verify) header.i=@gmail.com
header.s=20221208 header.b=E9QGBcZ5;
spf=pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net;
dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com)
by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95)
(envelope-from <openvpn-devel-bounces@lists.sourceforge.net>)
id 1polZE-00047W-R9;
Tue, 18 Apr 2023 13:40:21 +0000
Received: from [172.30.20.202] (helo=mx.sourceforge.net)
by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95)
(envelope-from <selva.nair@gmail.com>) id 1polZE-00047Q-3g
for openvpn-devel@lists.sourceforge.net;
Tue, 18 Apr 2023 13:40:21 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:Message-Id:
Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
List-Subscribe:List-Post:List-Owner:List-Archive;
bh=zTVAnHYxQ1qGKgwVMQBBnJoXSrsC+zZO+HyxrZVGqls=; b=ItsXqJ/g99fEOG7/qLJCWQ2vO/
+n5JGxl6Z2dGgfU29VYpYw9j3NpLI8yxYXmpaiE3uAX8rx+XDiFtPpCTQR7DxlFPSAT6kzix2UcGt
e/W7g/wKeYiZUPwi/yxfbcVGwEAFx+hgA8MmmqPxDiPHjvJ8+P+J4F7SeEevM3Ts5eGg=;
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x
;
h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From
:Sender:Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:
Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:
References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:
List-Owner:List-Archive; bh=zTVAnHYxQ1qGKgwVMQBBnJoXSrsC+zZO+HyxrZVGqls=; b=Z
AUyuTlsPSBsl68NSipSy/d6ijxH0jsBUmQaG6TBZZQNrJnjCKHICRsyB2ZwSRnnhQ/sW5FD9hUJHp
nxpEpPO0l3JicbkPJ91K1dqXA3xDxHE85t6PZfXLrJ4FIkPLRGIRB9+nqZCwBVBn9OS2pmQhOlfRS
dQd1KMp42+Yet/HM=;
Received: from mail-yw1-f173.google.com ([209.85.128.173])
by sfi-mx-1.v28.lw.sourceforge.com with esmtps
(TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95)
id 1polZE-00BSvq-8v for openvpn-devel@lists.sourceforge.net;
Tue, 18 Apr 2023 13:40:20 +0000
Received: by mail-yw1-f173.google.com with SMTP id
00721157ae682-54f8b687a06so3579237b3.0
for <openvpn-devel@lists.sourceforge.net>;
Tue, 18 Apr 2023 06:40:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20221208; t=1681825214; x=1684417214;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:from:to:cc:subject:date:message-id:reply-to;
bh=zTVAnHYxQ1qGKgwVMQBBnJoXSrsC+zZO+HyxrZVGqls=;
b=E9QGBcZ5bQTknJC1cwptrrkvJcQHgzn4ziqSKYHX5PmpuozVu3T5jjgsR9znHsJn5i
zELiQ6CuqAmOHnSlXzFbpqaAwiSNHBp4OjqcJG2fEmXE5KirUcxVkOpSLv34qkxPPeri
2UVqYaXsbQwkmggyThrDPUqOq4MiIM2D6n32sXtMvZZ68gmHRTtRj6xL1ihC90AzJ86S
0/02dK+ue0AQYHXVCLZiLXNKpS0disSgq34etVPui88IRpTkq1V7oWHmlO4bh3ozjEfn
EEIbiTcuClZslwwGaghn+PfJ5GfveNd4ty/va4KWtt6NXU6xC9+BJTyr+fuBiZoVh2Mg
hbsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20221208; t=1681825214; x=1684417214;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=zTVAnHYxQ1qGKgwVMQBBnJoXSrsC+zZO+HyxrZVGqls=;
b=KVpjEH6mhsXNSpnytGNKl1iaYp/NMljAZfW3Syduf4HH4et2WCwcBPu4LPkellDy2Y
8c9Ueh+cPi8ujnCxIAB23tavdHPh9ptDQcQzPUjnF7215EZ7qGGNr+uQvujC9riJKitX
2GDa49vVNG8Jq6kSUL3d0sS5oNwCIXsUtyO1gHEpo3WarOWms3LV3G2XINanVaYM2GgW
DYD1yk5wV79pqkGPfEE/PdqQJa7h5OKexCC5JHNuz7xEUvRHpZZuqZvsjr62z0IXBKyf
NX4JaSlOJ0xRljmC9qzHq4onNLv8syuaLZqUIleR2C9UTtnu5IiBvSzWsgTojbyJ0dgO
pHOA==
X-Gm-Message-State: AAQBX9dtgh2AXDSudg2cCM14NdjI1FFXM4UykxuK5AgtHGamtK7xeJ50
KGTmUJMnnEXQfE8k6spo6U5kT9HRXaP7Ew==
X-Received: by 2002:a81:f88:0:b0:54f:b503:6e69 with SMTP id
130-20020a810f88000000b0054fb5036e69mr12881223ywp.5.1681825214290;
Tue, 18 Apr 2023 06:40:14 -0700 (PDT)
Received: from uranus.sansel.ca
(bras-vprn-tnhlon4053w-lp130-01-70-51-222-66.dsl.bell.ca. [70.51.222.66])
by smtp.gmail.com with ESMTPSA id
u1-20020a817901000000b00545a08184b5sm3775471ywc.69.2023.04.18.06.40.13
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Tue, 18 Apr 2023 06:40:13 -0700 (PDT)
From: selva.nair@gmail.com
To: openvpn-devel@lists.sourceforge.net
Date: Tue, 18 Apr 2023 09:40:11 -0400
Message-Id: <20230418134011.1752777-1-selva.nair@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
X-Spam-Score: -0.2 (/)
X-Spam-Report: Spam detection software,
running on the system "util-spamd-1.v13.lw.sourceforge.com",
has NOT identified this incoming email as spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: From: Selva Nair - We assume that all text passed to the
management
interface and written to log file are in Unicode (UTF-8). This is broken
by the use of the ANSI version of FormatMessage() for Windows error messages
[...] Content analysis details: (-0.2 points, 6.0 required)
pts rule name description
---- ----------------------
--------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust [209.85.128.173 listed in list.dnswl.org]
-0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2)
[209.85.128.173 listed in wl.mailspike.net]
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider [selva.nair[at]gmail.com]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
envelope-from domain
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily
valid
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
X-Headers-End: 1polZE-00BSvq-8v
Subject: [Openvpn-devel] [PATCH] Format Windows error message in Unicode
X-BeenThere: openvpn-devel@lists.sourceforge.net
X-Mailman-Version: 2.1.21
Precedence: list
List-Id: <openvpn-devel.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/options/openvpn-devel>,
<mailto:openvpn-devel-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive:
<http://sourceforge.net/mailarchive/forum.php?forum_name=openvpn-devel>
List-Post: <mailto:openvpn-devel@lists.sourceforge.net>
List-Help: <mailto:openvpn-devel-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/openvpn-devel>,
<mailto:openvpn-devel-request@lists.sourceforge.net?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: openvpn-devel-bounces@lists.sourceforge.net
X-getmail-retrieved-from-mailbox: Inbox
X-GMAIL-THRID: =?utf-8?q?1763521596411382266?=
X-GMAIL-MSGID: =?utf-8?q?1763521596411382266?=
|
| Series |
[Openvpn-devel] Format Windows error message in Unicode
|
|
Commit Message
Selva Nair
April 18, 2023, 1:40 p.m. UTC
From: Selva Nair <selva.nair@gmail.com> - We assume that all text passed to the management interface and written to log file are in Unicode (UTF-8). This is broken by the use of the ANSI version of FormatMessage() for Windows error messages. Fix by using FormatMessageW() and converting the UTF-16 result to UTF-8. Github: fixes OpenVPN/openvpn#319 Signed-off-by: Selva Nair <selva.nair@gmail.com> --- src/openvpn/error.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)
Comments
On Tue, Apr 18, 2023 at 09:40:11AM -0400, selva.nair@gmail.com wrote: > From: Selva Nair <selva.nair@gmail.com> > > - We assume that all text passed to the management interface > and written to log file are in Unicode (UTF-8). This is broken by > the use of the ANSI version of FormatMessage() for Windows error > messages. Fix by using FormatMessageW() and converting the UTF-16 > result to UTF-8. > > Github: fixes OpenVPN/openvpn#319 > > Signed-off-by: Selva Nair <selva.nair@gmail.com> > --- > src/openvpn/error.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/src/openvpn/error.c b/src/openvpn/error.c > index a2c9aa4c..ef821fcd 100644 > --- a/src/openvpn/error.c > +++ b/src/openvpn/error.c > @@ -970,19 +970,24 @@ strerror_win32(DWORD errnum, struct gc_arena *gc) > > /* format a windows error message */ > { > - char message[256]; > + wchar_t wmessage[256]; > + char *message = NULL; > struct buffer out = alloc_buf_gc(256, gc); > - const int status = FormatMessage( > + const int status = FormatMessageW( According to the documentation the function returns DWORD, not int. When we touch the code anyway, we should clean that up. > FORMAT_MESSAGE_IGNORE_INSERTS > | FORMAT_MESSAGE_FROM_SYSTEM > | FORMAT_MESSAGE_ARGUMENT_ARRAY, > NULL, > errnum, > 0, > - message, > - sizeof(message), > + wmessage, > + SIZE(wmessage), > NULL); > - if (!status) > + if (status) > + { > + message = utf16to8(wmessage, gc); > + } > + if (!status || !message) > { > buf_printf(&out, "[Unknown Win32 Error]"); > } > -- > 2.34.1 > > > > _______________________________________________ > Openvpn-devel mailing list > Openvpn-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openvpn-devel
diff --git a/src/openvpn/error.c b/src/openvpn/error.c index a2c9aa4c..ef821fcd 100644 --- a/src/openvpn/error.c +++ b/src/openvpn/error.c @@ -970,19 +970,24 @@ strerror_win32(DWORD errnum, struct gc_arena *gc) /* format a windows error message */ { - char message[256]; + wchar_t wmessage[256]; + char *message = NULL; struct buffer out = alloc_buf_gc(256, gc); - const int status = FormatMessage( + const int status = FormatMessageW( FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, NULL, errnum, 0, - message, - sizeof(message), + wmessage, + SIZE(wmessage), NULL); - if (!status) + if (status) + { + message = utf16to8(wmessage, gc); + } + if (!status || !message) { buf_printf(&out, "[Unknown Win32 Error]"); }