From patchwork Tue Jan 20 15:55:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Lichtenheld X-Patchwork-Id: 4725 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7000:91d9:b0:80a:3855:ce6a with SMTP id k25csp192180maf; Tue, 20 Jan 2026 07:56:09 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCW87Y//LvTp4N54+mFWukzGsQ17xof4yOnc809b5L7wJfSpJXrfKK/Jcfcyy6+fU6stFGf7kDsYWBA=@openvpn.net X-Received: by 2002:a05:6830:258d:b0:7cf:d642:d36c with SMTP id 46e09a7af769-7d140a3de8cmr1115840a34.2.1768924569667; Tue, 20 Jan 2026 07:56:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768924569; cv=none; d=google.com; s=arc-20240605; b=gWcsS5gh0Dmo0yCGjzEs+JkKczMdDG9Fy8son+JPpJB5WcOrAh4mmJok502MI60Nxt WzRD3OXl7MOGXABaeEfTPoAqqQ4LsuxVrVa7JiFqWHhIxxnaujxyGOj7j8mvA/PBcx0h ZNrzUVGDb9uvT22MnPgSZDnC6EdAuxd0/chXrwmOPzksUH7+W5529YYU5QFbrm9uXi2S TCx+N47qXZUF6qEeZxRYqqTG0V2t1MUe63HJRvp2EQIOvpABZY5LqtpDBwMFsXNCDk3A iB3S+dqicB+5dadglj+gwBvg2vRVLFb84e2pqOTFIi1FaKiaEKrIooMMjcBIV+ryv5mk ADXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:content-transfer-encoding:cc:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:references:in-reply-to:message-id:date:to:from :dkim-signature:dkim-signature:dkim-signature:dkim-signature; bh=QG0SHS1ihM3Ebt52aWafbJWfQrl31UETeWE7sCnu5RA=; fh=H6mFs2pVe2/avHEN3ZXlblBRMUbfPBnqHVZOzcm8npI=; b=bPIgmoYOhrA5TINMn8/4A4+8/TXRC1aPrDxsG0m5NNlOCck55iPQl3emZHPgMeU1i6 4QnLfWH4e9iyid97/n1mhwLi0EGlTOXoH99YVESJDAkrCo8Mfa07f1urkDICW7L3LCkX CC+0KQHFWQsV++fKxbkjZRFMYs+EA34H1HlmVM85Sseicd+AYqfYy7+9D982vG8ik3Hp RiKaBH7Mds311nvR7vKWiZg3DODLI3zEt0UMOXQSeTbrw42UL5kHTptye/fBlS25eY63 AS7SgStq0vQrTTX9E9mzig0n/Gy8tLJHDyjFWdns6vvZyncNIKhA8yuuvg3vFZOvrhvV 4edw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b="TUgRcn/J"; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=ZelBm1UJ; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=FdNcl5i5; dkim=neutral (body hash did not verify) header.i=@lichtenheld.com header.s=MBO0001 header.b=S19W9oNg; 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 Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7]) by mx.google.com with ESMTPS id 46e09a7af769-7cfdf426a08si7023229a34.83.2026.01.20.07.56.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Jan 2026 07:56:09 -0800 (PST) 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=pass header.i=@lists.sourceforge.net header.s=beta header.b="TUgRcn/J"; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=ZelBm1UJ; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=FdNcl5i5; dkim=neutral (body hash did not verify) header.i=@lichtenheld.com header.s=MBO0001 header.b=S19W9oNg; 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 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Subject:MIME-Version:References:In-Reply-To:Message-ID:Date:To:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QG0SHS1ihM3Ebt52aWafbJWfQrl31UETeWE7sCnu5RA=; b=TUgRcn/J2soVyj3M4+hmcEkkC+ G64boU3rH1MS2MzNNSB8MY3aP5LpHAUNn+r5nQyhNYNst8oGtzBVAuWuoOozwLGLQrOQ7gPIu83KJ K0KX3VCaH7Q3t794wtKuUswnXnGcqhl3UmtHHfRllKwEeNybf9eUek9xeGgHQnzFt5VE=; Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1viE5J-0007a2-AM; Tue, 20 Jan 2026 15:56:01 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1viE5G-0007Zt-NF for openvpn-devel@lists.sourceforge.net; Tue, 20 Jan 2026 15:56:00 +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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=iV9AA7Q6TQ1BnC7uD/y2UbGa+YbsmC9/HALffV6CSzs=; b=ZelBm1UJ/8sgD2nWuR/VJs6jGM ebRIYz8F40uH4QZwF1sRBkr0HUN5DQkK0nEVKPYA9v4CJjBS0qcdmYJcTZldV0l6ST6zGwx3hppFZ Sz1C3rzEweCXLvht5hG4xuyd7xuSvR5Xa26XmpUXRyOwi6tdAbHQAz3sSrZM79cfop20=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=iV9AA7Q6TQ1BnC7uD/y2UbGa+YbsmC9/HALffV6CSzs=; b=FdNcl5i5UZVykTpV4WKcJlvuf7 itjTKEmVQVKY5uQ7hE7Zyl2IK91mf6rZ6Cz0BEzDbG+cmOA6eKTZpoSYkj1M0u3cAjVUDyV+IwnLc tkEWjmbPTUUowal1OhqX2WQBHXWAaMyV3dVuduaS3lhFN27TJymTZ6O3+lKG8ywF0MDs=; Received: from mout-p-102.mailbox.org ([80.241.56.152]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1viE5F-0004nF-NU for openvpn-devel@lists.sourceforge.net; Tue, 20 Jan 2026 15:55:58 +0000 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4dwX3n14P5z9scy; Tue, 20 Jan 2026 16:55:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lichtenheld.com; s=MBO0001; t=1768924549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iV9AA7Q6TQ1BnC7uD/y2UbGa+YbsmC9/HALffV6CSzs=; b=S19W9oNgDuMZE+r1ZLfrU9VC6sYXdHkjDmV4u6QJUzW0/u6bqquuiLpm0Pvfx5zU193eUs SUgxamZ3xoj7GrkW4yJ+xHfvKqAig/fQlg4xql9D4DL2e36z8dgVtnR1TcO/93/ICNzXIV a1DstwiR4VjQKU8a769HvoeAowInqBfSwWTPfzfNLsXfdOi6ELPTbAnnoYBUPJE2pzZWSN 2s2uOQcZRPpNf+m+cQNZpSskXHbB2XcPQge73ErTHKQKJhCWpi77ZZrCBvAFuliB+EPuKX K5rQ3fS1pZh5OvVaD0KyIGNATwbkm0sCydqaYT+uNl8G/yAatsWvLsULg+DeAA== From: Frank Lichtenheld To: openvpn-devel@lists.sourceforge.net Date: Tue, 20 Jan 2026 16:55:47 +0100 Message-ID: <20260120155547.116088-1-frank@lichtenheld.com> In-Reply-To: References: MIME-Version: 1.0 X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "sfi-spamd-2.hosts.colo.sdot.me", 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: Mostly DWORD vs. size_t conversions where we have no choice but to cast. Change-Id: I864cd4a718886f437b72e93d0286f90fcb73592b Signed-off-by: Frank Lichtenheld Acked-by: Heiko Hund Gerrit URL: https://gerrit.openvpn.net/c/openvpn/ [...] Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-Headers-End: 1viE5F-0004nF-NU Subject: [Openvpn-devel] [PATCH v5] openvpnserv: Fix conversion warnings in interactive.c 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: , Cc: Heiko Hund Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox X-GMAIL-THRID: =?utf-8?q?1854783481339094804?= X-GMAIL-MSGID: =?utf-8?q?1854851850006917472?= Mostly DWORD vs. size_t conversions where we have no choice but to cast. Change-Id: I864cd4a718886f437b72e93d0286f90fcb73592b Signed-off-by: Frank Lichtenheld Acked-by: Heiko Hund Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1457 --- 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/+/1457 This mail reflects revision 5 of this Change. Acked-by according to Gerrit (reflected above): Heiko Hund diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index aa7da00..b6ab2b8 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -1383,10 +1383,20 @@ return TRUE; } -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif +/** + * Return correct size for registry value to set for string + * + */ +static DWORD +RegWStringSize(PCWSTR string) +{ + size_t length = (wcslen(string) + 1) * sizeof(wchar_t); + if (length > UINT_MAX) + { + length = UINT_MAX; + } + return (DWORD)length; +} /** * Prepare DNS domain "SearchList" registry value, so additional @@ -1413,7 +1423,7 @@ return TRUE; } - DWORD size = (wcslen(list) + 1) * sizeof(*list); + DWORD size = RegWStringSize(list); LSTATUS err = RegSetValueExW(key, L"InitialSearchList", 0, REG_SZ, (PBYTE)list, size); if (err) { @@ -1474,7 +1484,7 @@ wcsncpy(list, domains, wcslen(domains) + 1); } - size = (wcslen(list) + 1) * sizeof(list[0]); + size = RegWStringSize(list); err = RegSetValueExW(key, L"SearchList", 0, REG_SZ, (PBYTE)list, size); if (err) { @@ -1515,7 +1525,7 @@ goto out; } - size = (wcslen(list) + 1) * sizeof(list[0]); + size = RegWStringSize(list); err = RegSetValueExW(key, L"SearchList", 0, REG_SZ, (PBYTE)list, size); if (err) { @@ -1579,14 +1589,14 @@ } /* If the search list is back to its initial state reset it */ - if (wcsncmp(list, initial, wcslen(list)) == 0) + if (wcsncmp(list, initial, list_len) == 0) { ResetDnsSearchDomains(key); return; } } - size = (list_len + 1) * sizeof(list[0]); + size = RegWStringSize(list); err = RegSetValueExW(key, L"SearchList", 0, REG_SZ, (PBYTE)list, size); if (err) { @@ -1751,7 +1761,7 @@ goto out; } - err = RegSetValueExA(itf, "NameServer", 0, REG_SZ, (PBYTE)value, strlen(value) + 1); + err = RegSetValueExA(itf, "NameServer", 0, REG_SZ, (PBYTE)value, (DWORD)strlen(value) + 1); if (err) { MsgToEventLog(M_SYSERR, L"%S: could not set name servers '%S' for %s family %d (%lu)", @@ -1807,7 +1817,7 @@ int addr_len = msg->addr_len; /* sanity check */ - const size_t max_addrs = _countof(msg->addr); + const int max_addrs = _countof(msg->addr); if (addr_len > max_addrs) { addr_len = max_addrs; @@ -1949,7 +1959,7 @@ short family = families[i]; /* Create a comma sparated list of addresses of this family */ - int offset = 0; + size_t offset = 0; char addr_list[NRPT_ADDR_SIZE * NRPT_ADDR_NUM]; for (int j = 0; j < NRPT_ADDR_NUM && addresses[j][0]; j++) { @@ -2085,9 +2095,9 @@ size_t addr_len = strlen(pos); pos += addr_len; - s -= addr_len; + s -= (DWORD)addr_len; } - s = strlen(addrs) + 1; + s = (DWORD)strlen(addrs) + 1; } if (strchr(addrs, ':')) @@ -2163,7 +2173,8 @@ LSTATUS err = ERROR_FILE_NOT_FOUND; const DWORD buf_size = *size; - const size_t glyph_size = sizeof(*domains); + const DWORD glyph_size = sizeof(*domains); + const DWORD buf_len = buf_size / glyph_size; PWSTR values[] = { L"SearchList", L"Domain", L"DhcpDomainSearchList", L"DhcpDomain", NULL }; for (int i = 0; values[i]; i++) @@ -2178,7 +2189,6 @@ * - convert comma separated list to MULTI_SZ */ PWCHAR pos = domains; - const DWORD buf_len = buf_size / glyph_size; while (TRUE) { /* Terminate the domain at the next comma */ @@ -2188,9 +2198,9 @@ *comma = '\0'; } - size_t domain_len = wcslen(pos); - size_t domain_size = domain_len * glyph_size; - size_t converted_size = (pos - domains) * glyph_size; + DWORD domain_len = (DWORD)wcslen(pos); + DWORD domain_size = domain_len * glyph_size; + DWORD converted_size = (DWORD)(pos - domains) * glyph_size; /* Ignore itf domains which match a pushed search domain */ if (ListContainsDomain(search_domains, pos, domain_len)) @@ -2216,7 +2226,7 @@ domain_size += glyph_size; /* Space for the terminating zeros */ - size_t extra_size = 2 * glyph_size; + const DWORD extra_size = 2 * glyph_size; /* Check for enough space to convert this domain */ if (converted_size + domain_size + extra_size > buf_size) @@ -2450,7 +2460,7 @@ /* Set DNS Server address */ err = RegSetValueExA(rule_key, "GenericDNSServers", 0, REG_SZ, (PBYTE)address, - strlen(address) + 1); + (DWORD)strlen(address) + 1); if (err) { goto out; @@ -2571,7 +2581,7 @@ if (domains[0]) { size_t domains_len = strlen(domains); - dom_size = domains_len + 2; /* len + the trailing NULs */ + dom_size = (DWORD)domains_len + 2; /* len + the trailing NULs */ wide_domains = utf8to16_size(domains, dom_size); dom_size *= sizeof(*wide_domains); @@ -2628,10 +2638,6 @@ return err; } -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic pop -#endif - /** * Return the registry key where NRPT rules are stored *