From patchwork Thu Dec 29 04:07:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selva Nair X-Patchwork-Id: 2958 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7300:c95:b0:82:e4b3:40a0 with SMTP id p21csp3739338dyk; Wed, 28 Dec 2022 20:09:06 -0800 (PST) X-Google-Smtp-Source: AMrXdXsqMx2lhtQDg4BztkqydZBCDxdmVPBTOLQFSFUaaZCMFfiH7eLNioA/D7FlPUfx5FZSopzi X-Received: by 2002:a17:902:7584:b0:191:35c9:db30 with SMTP id j4-20020a170902758400b0019135c9db30mr26743973pll.5.1672286946187; Wed, 28 Dec 2022 20:09:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672286946; cv=none; d=google.com; s=arc-20160816; b=wYz2I1po6QfivR4fOoVQsj9SkW3uzG772ygNrs98vH1g9yU6uqBGiZ+2HXTNTQoTTF Fu9728qE58Zt4OlSXsuTVqFljjsl7O0xXIP2blyPoXdT+dxr9i9rPB5WX074jLnIsWuv EW3okLMnULWkBIXUkXJCDYvg2u9jq35mHRmSK46fX14nij1p3ypbDpSomUdqGF8jVET+ 2Z4vtnIszTOzDa+2QtBfpV6eQwFHk4/EdL7Fx+lduiqU+XBCrirymeOQZlSDUnhuy6yT S4TkZDdFTdkDmj4tA2Ef85cesrBMGYmDCcuIYPmhMaR+LunqL7RoruAGg5y20/84Zu3t kiig== 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=juo7QbBhI8EjyW8wvB5FKfXlqGZcVXBuXYJVYJRLxFI=; b=sk4srniv8q30lM8y+RG9j2g/q8NlM3kvmjQlEY9j17odIBqYriZtvhE+Xg5c0hS0dT 9kF2meEn1/EZZ8JKn5aeXpCDUmEXWzDLrddujAWo7LHRoKhZWmJuDcOj10QrRZJG2wqn jy4RHW4XWKjr1Bh9GSQlin0AFwIe6/a+x+izmdjfCNZqEO0G+PR1WHi7MJz8DGSv9zXx W2ALoac+NbKbEsD/bp3zFPvwqXdSysdl6zOp/9y6pdMRgwtXWJaV+mWIE7/6tjmXy78R wfUtpxp17+hg0X5/1sIFEnxxtGWNugk+VkCrhiSye3aepByn157OrdUz8QvkGZPE0PAi Yo8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=GvQ4Xuos; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=Rz0Phlas; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Q4g/kppw"; 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 b4-20020a170902d50400b001781f860a6dsi19019252plg.228.2022.12.28.20.09.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Dec 2022 20:09:06 -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=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=GvQ4Xuos; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=Rz0Phlas; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="Q4g/kppw"; 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-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1pAkDF-0000J2-DB; Thu, 29 Dec 2022 04:08:13 +0000 Received: from [172.30.20.202] (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 1pAkDE-0000Iw-5R for openvpn-devel@lists.sourceforge.net; Thu, 29 Dec 2022 04:08:12 +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=FJuXG4ckg5o+fvOSU8dNNxt4xIdz5g5llcgP9WqLgDs=; b=GvQ4XuosyZdIvYJU1mISd3+3do 4DwOsasHeaBvo6w4fIDkUqHc6VFKNnd4urm3tifwqGVTXyUc+CxTsv0zb4XbliTS9MLxBxc1efiZ0 HOejCTZjUxt30njI/+3dgjq9MdjgGJ9Zbaqg+MiMKv2VrgAmLwSqiMcWI8GbgCrTcVB0=; 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=FJuXG4ckg5o+fvOSU8dNNxt4xIdz5g5llcgP9WqLgDs=; b=R z0PhlasRth80YqAEVwZ32/CUvzFTI+Pz8w4M0jXWIH05My3vmIbNLW5vk9Kkv0TOEFLzl0aVhx9Fl 6fXQi9KkWYsLyEacqWidN3EzhedRwRafZQ0v/jRAwBByNTNvfNNmAGG+cWhrCwrIbB2fmZcfCXf/8 +UMVQ3cLvFRTrrEw=; Received: from mail-io1-f41.google.com ([209.85.166.41]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95) id 1pAkD8-00FsSF-Vs for openvpn-devel@lists.sourceforge.net; Thu, 29 Dec 2022 04:08:12 +0000 Received: by mail-io1-f41.google.com with SMTP id q190so9247103iod.10 for ; Wed, 28 Dec 2022 20:08:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=FJuXG4ckg5o+fvOSU8dNNxt4xIdz5g5llcgP9WqLgDs=; b=Q4g/kppwO8FUz5Vvyebgw9DCwtxlJFBpf4PifijR2t7T5fiukL+gsb+NpxMoiAAxYv oIpiaOCN49h7L2zlLqJguTo5dJz0uczvXimPoCEhEAhsCNCDk6yOog2jo8MgaEq3QGn0 rHVW7Bdk0mchCDDT+k5QIhB/BtcL23tNKxRrmRSiQF5ZpMKObP4ZZ26Uog0dzsYb8ZUw oAZ4bmH16Gyzk7KjR47csF6tLbr6t4BaF3uJgS1N8eDUVNtovQyQR/lZSydBwfzXiGTG +4dK537hmnHiIQFxzQRT4gPgyxr7nNlfalO7Fu3giSrduu0U+7eMlWjhUFrsptm6EFfz uZxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=FJuXG4ckg5o+fvOSU8dNNxt4xIdz5g5llcgP9WqLgDs=; b=GTapW+g84SChFw3Nd75Kjy4GTg1NmihOI4SxL5bQ+3CqB17ib2GvNJ8JRFjq7dcL7y WWaaaOtvrbUZdEmtQc0DPsg4pevWsRV3JDPD5Fvio7I2jsR53hIupXoIimRoEtkx+xSo DL6Mfw6QXVy+jwyiQMYc3sBxpoXvF5akMAowjPyDAlKko6DobNGV9qR2ycO0ktgguxns snFb+uh2LBoFkQmPoD9Qfop2p6duydsUS0vjytLmGhtc1wVNVQVQ0TLA0IxqkztaarFL 6Uldtl/fKEVioK7NAYomKs1iNWDsl2LkxgU8k4eKJkhsMDZOrcx7zW1BpNZpE8ngj4/y +zag== X-Gm-Message-State: AFqh2krILKVOIkwvl5mFI+FLcvItJ1wudo/THH1dRXjVuIPhRUAV1epV vMfOjmV62j1upNuiIvJEjklJ0SbZA5dMHg== X-Received: by 2002:a6b:410f:0:b0:6e2:d6ec:21f8 with SMTP id n15-20020a6b410f000000b006e2d6ec21f8mr3933866ioa.2.1672286881154; Wed, 28 Dec 2022 20:08:01 -0800 (PST) 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 b71-20020a0295cd000000b003748d3552e1sm5518477jai.154.2022.12.28.20.07.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 20:08:00 -0800 (PST) From: selva.nair@gmail.com To: openvpn-devel@lists.sourceforge.net Date: Wed, 28 Dec 2022 23:07:17 -0500 Message-Id: <20221229040717.1471276-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 The return value of MapViewOfFile must be passed to UnmapViewofFile, instead of the file handle. Fixes #206 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.166.41 listed in list.dnswl.org] 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.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.166.41 listed in wl.mailspike.net] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 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 X-Headers-End: 1pAkD8-00FsSF-Vs Subject: [Openvpn-devel] [PATCH] Properly unmap ring buffer file-map in interactive service 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?1753519956592477018?= X-GMAIL-MSGID: =?utf-8?q?1753519956592477018?= From: Selva Nair The return value of MapViewOfFile must be passed to UnmapViewofFile, instead of the file handle. Fixes #206 Signed-off-by: Selva Nair --- src/openvpnserv/interactive.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c index 5b396e01..2fe41f09 100644 --- a/src/openvpnserv/interactive.c +++ b/src/openvpnserv/interactive.c @@ -109,6 +109,8 @@ typedef struct { HANDLE send_tail_moved; HANDLE receive_tail_moved; HANDLE device; + struct tun_ring *send_ring; + struct tun_ring *receive_ring; } ring_buffer_handles_t; @@ -165,15 +167,14 @@ CloseHandleEx(LPHANDLE handle) return INVALID_HANDLE_VALUE; } -static HANDLE -OvpnUnmapViewOfFile(LPHANDLE handle) +static void +OvpnUnmapViewOfFile(struct tun_ring **ring) { - if (handle && *handle && *handle != INVALID_HANDLE_VALUE) + if (ring && *ring) { - UnmapViewOfFile(*handle); - *handle = INVALID_HANDLE_VALUE; + UnmapViewOfFile(*ring); } - return INVALID_HANDLE_VALUE; + *ring = NULL; } static void @@ -182,8 +183,10 @@ CloseRingBufferHandles(ring_buffer_handles_t *ring_buffer_handles) CloseHandleEx(&ring_buffer_handles->device); CloseHandleEx(&ring_buffer_handles->receive_tail_moved); CloseHandleEx(&ring_buffer_handles->send_tail_moved); - OvpnUnmapViewOfFile(&ring_buffer_handles->send_ring_handle); - OvpnUnmapViewOfFile(&ring_buffer_handles->receive_ring_handle); + OvpnUnmapViewOfFile(&ring_buffer_handles->send_ring); + OvpnUnmapViewOfFile(&ring_buffer_handles->receive_ring); + CloseHandleEx(&ring_buffer_handles->receive_ring_handle); + CloseHandleEx(&ring_buffer_handles->send_ring_handle); } static HANDLE @@ -1354,8 +1357,6 @@ HandleRegisterRingBuffers(const register_ring_buffers_message_t *rrb, HANDLE ovp ring_buffer_handles_t *ring_buffer_handles) { DWORD err = 0; - struct tun_ring *send_ring; - struct tun_ring *receive_ring; CloseRingBufferHandles(ring_buffer_handles); @@ -1365,13 +1366,13 @@ HandleRegisterRingBuffers(const register_ring_buffers_message_t *rrb, HANDLE ovp return err; } - err = DuplicateAndMapRing(ovpn_proc, rrb->send_ring_handle, &ring_buffer_handles->send_ring_handle, &send_ring); + err = DuplicateAndMapRing(ovpn_proc, rrb->send_ring_handle, &ring_buffer_handles->send_ring_handle, &ring_buffer_handles->send_ring); if (err != ERROR_SUCCESS) { return err; } - err = DuplicateAndMapRing(ovpn_proc, rrb->receive_ring_handle, &ring_buffer_handles->receive_ring_handle, &receive_ring); + err = DuplicateAndMapRing(ovpn_proc, rrb->receive_ring_handle, &ring_buffer_handles->receive_ring_handle, &ring_buffer_handles->receive_ring); if (err != ERROR_SUCCESS) { return err; @@ -1389,7 +1390,8 @@ HandleRegisterRingBuffers(const register_ring_buffers_message_t *rrb, HANDLE ovp return err; } - if (!register_ring_buffers(ring_buffer_handles->device, send_ring, receive_ring, + if (!register_ring_buffers(ring_buffer_handles->device, ring_buffer_handles->send_ring, + ring_buffer_handles->receive_ring, ring_buffer_handles->send_tail_moved, ring_buffer_handles->receive_tail_moved)) { err = GetLastError();