From patchwork Mon Jan 19 21:49:03 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gert Doering X-Patchwork-Id: 4722 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7000:9186:b0:80a:3855:ce6a with SMTP id j6csp3453570maf; Mon, 19 Jan 2026 13:49:29 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUeYt4Et9m/HgSB7xVwqbReCgm8pDGkROzRFkRLdEBvHW8O8z+e7ubQLFsNGlGk6VF77arfHOiHVOE=@openvpn.net X-Received: by 2002:a05:6808:1447:b0:450:c8c3:7106 with SMTP id 5614622812f47-45c9d6fbd1fmr5578327b6e.9.1768859368887; Mon, 19 Jan 2026 13:49:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768859368; cv=none; d=google.com; s=arc-20240605; b=H0IkBW/2wAzPGr4wlIb56UPiTUevO4mL4jQ9/MhLhhSyGZrFMCY4scNRZCHksIEpS4 ZAMbczdxfb33eOuneHr0z+VvYi3xjg57LZbzSmoh8tPlCPsiB25tn2WSKY7+kusjvvUc od03UXbifXmD/Sx57tOHxqJcNj7r9eXdIEAzd9BpF4UFuJZpRrKTcwZsSySAyXVeNx5X PLid5PiQday8lY7CicHkpiIlkzR4XQ6MEP2Eu4WhBOfw4jNBvX9GTBCJ0JAVZg0Qb2ym LWV92l5l+5jGeKHOHuFin2n5xX8LvRgwqo8vFgla4tTMA9OF2YTICAmAdsLoFAhWfBLE QBLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=errors-to:content-transfer-encoding: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; bh=+ZqS56kImv0PIc5TahISNI50RBMYVlIR6/YQFeyDl3Y=; fh=4NbAC/LsuMLI0S0hprUlLSLCiHwg6SCAifhH718Jh0Q=; b=jBzyG3dsASel04PmJb9EOKGRdSVSNUCeA3/aOMIL9Y6pUU5h9DBEN7C/hc7WQeUVdG jbPKz8Ji6D3pYJIWxR/ncY+yUWtP3rU8JdEGG+04qn6PaJFhsGtlWdsmVOQtOnNHvAVu Oaxrtm2oONFbtRybMWjjAgSTGia6Ps/U2JP8rCWAhlT1pXOkU7s9kfKIWRS4KWNVYY/8 dL89RUwxwJfEgGcRz8/KhSTZ+GC+h5n+EFWq9ix+HSUbcreTwlTTChc/E9F4dBIAPnM+ yL6wtz1XXvaIhn2/9g5wLjITwTOBdiNko1cFSq8SvceRu7pyQ+5GRKmfGjJ3DLdRA+iE 8AqQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.sourceforge.net header.s=beta header.b=ZIAURWe3; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=aaeArbZD; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=jhiNY8Hs; 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=NONE dis=NONE) header.from=muc.de Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7]) by mx.google.com with ESMTPS id 586e51a60fabf-4044bd75111si8501445fac.181.2026.01.19.13.49.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jan 2026 13:49:28 -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=ZIAURWe3; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=aaeArbZD; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=jhiNY8Hs; 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=NONE dis=NONE) header.from=muc.de 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: 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:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+ZqS56kImv0PIc5TahISNI50RBMYVlIR6/YQFeyDl3Y=; b=ZIAURWe3Eh6cpA2DfLDxxkz8+c dduNsPIyMiluZAiXfYECw1Z7oUxDlKjrw87KvNgC9np4yAtl3O39FwP9uOL9T6hLF2EoqA/a5xpLP Z6qPCWZotDN+wKT1RSqXPJuuh5w6/sBSP/91cr6c3h5nVNy5dGuXF0ABhqyrHeAuJrcE=; 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 1vhx7k-0003s3-F3; Mon, 19 Jan 2026 21:49:24 +0000 Received: from [172.30.29.66] (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 1vhx7i-0003ru-AR for openvpn-devel@lists.sourceforge.net; Mon, 19 Jan 2026 21:49:22 +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:To:From:Sender:Reply-To:Cc: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=pbkzMg/QlktCPjDYrDUnFnCkfujpoN6a6BDDwWcU0yg=; b=aaeArbZDHm8rnT1wk7A5EjK0XS StTJRubteSOnskM3d46HbKamoBqGpH4u5tZAhLrDNeAHNzWLltRxUurnk+Ubeyw4T1a8/ck3WoG/K gVIP5j1FMvYO4XuSGD6uTM4q7yfDugYU7WyDNLHNGUteWBACu8lM/Qq4OqrLt9rT7YUE=; 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:To:From:Sender:Reply-To:Cc: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=pbkzMg/QlktCPjDYrDUnFnCkfujpoN6a6BDDwWcU0yg=; b=jhiNY8HsWoKeWT+LrXhXFNf8tN 0/4qYmeYHG5IuYvdaBjIrFKzcLQxVslN4ql3WPcoqiWf1g74uasisUoqAOFDxbag4PnRWaeE17N+S 7nnybsHthul3w8cwbypnK7Z6QJbDTQSa1whQdtjm1NLWmZehnMPD9l4FiUqKCx+BrwLg=; Received: from [193.149.48.134] (helo=blue.greenie.muc.de) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1vhx7h-00063I-1p for openvpn-devel@lists.sourceforge.net; Mon, 19 Jan 2026 21:49:22 +0000 Received: from blue.greenie.muc.de (localhost [127.0.0.1]) by blue.greenie.muc.de (8.18.1/8.18.1) with ESMTP id 60JLn9R3027743 for ; Mon, 19 Jan 2026 22:49:09 +0100 Received: (from gert@localhost) by blue.greenie.muc.de (8.18.1/8.18.1/Submit) id 60JLn9c7027742 for openvpn-devel@lists.sourceforge.net; Mon, 19 Jan 2026 22:49:09 +0100 From: Gert Doering To: openvpn-devel@lists.sourceforge.net Date: Mon, 19 Jan 2026 22:49:03 +0100 Message-ID: <20260119214908.27729-1-gert@greenie.muc.de> X-Mailer: git-send-email 2.51.2 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "sfi-spamd-1.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: From: Frank Lichtenheld 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: (1.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS X-Headers-End: 1vhx7h-00063I-1p Subject: [Openvpn-devel] [PATCH v4] 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: , 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?1854783481339094804?= From: Frank Lichtenheld 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 4 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..b53207bc 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 length for regex 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 *