From patchwork Tue Apr 18 13:40:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selva Nair X-Patchwork-Id: 3190 Return-Path: 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 ) 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 ) 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 ; 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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?= 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. Fix by using FormatMessageW() and converting the UTF-16 result to UTF-8. Github: fixes OpenVPN/openvpn#319 Signed-off-by: Selva Nair --- 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( 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]"); }