From patchwork Thu Dec 29 13:47:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selva Nair X-Patchwork-Id: 2960 Return-Path: Delivered-To: patchwork@openvpn.net Received: by 2002:a05:7300:c95:b0:82:e4b3:40a0 with SMTP id p21csp3979292dyk; Thu, 29 Dec 2022 05:48:11 -0800 (PST) X-Google-Smtp-Source: AMrXdXt27qYaF34sWE256xJk17Ului2kNg1M5FxDKXZPB+p317JKegTnb4wjUxAp8y0PJM3LqXBC X-Received: by 2002:a05:6a20:7faa:b0:b3:8808:b93d with SMTP id d42-20020a056a207faa00b000b38808b93dmr13089084pzj.62.1672321690890; Thu, 29 Dec 2022 05:48:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672321690; cv=none; d=google.com; s=arc-20160816; b=IPtYISpSbevFT+SocSgD2DBKvoO9vEt340gh4mvMn0vA5ORBmWg/ZbcYmTwtvRpFAK NZwjXrcnU6gLdH5wSqgXCUqy2diNK6k0+ZqpP+5F/9G7+KTkO55/y8arziqjSpePGIXI GpYwKf/lZ+iukSzwP3HrS7DLmfW+BJUVJkGUTqokyaRNMay/Y3NuUVwb9XURIRjTWs7r j1U4V7KF05p14Z59KXNtzuiEPoQQ0j/YNdftPEMGMs1k+mb1GYH6809XinPZDr0NNpSY pEw/qBALFxY815uwtyD/YV4H9q4P1+taq4TcnuumC0h0EyxGe7DuDGGQq03mD1DvWdgH NYOA== 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:references:in-reply-to:message-id:date:to:from :dkim-signature:dkim-signature:dkim-signature; bh=qz/k2BhgnUGCcQTWYvx8lQjJLMTQzrlsHY7mmIzM0a0=; b=iThR7UHIVJHI9IKAIeLX9phjYWm6AZNUv2BoysRn39JuOFFJBi+MdSAttmqRKBs9aD MF2M38KkPmscfUfbjWIvDiRPYN9qeH8ity6JmHzY9Jzho1E0TvU44EcSicikYdqVAlx9 kbcKKz5ig0B9GMi8sMkzqg9MS/4/PjXlKUcBy1MCFNdotu27U5yqfxKzDARJI1NgsCDQ I8GKsaLqXvRjJXYx1/teS+QWIcjcFK+nEtYytE7tmBp8b6tUxNeEndVFqgPctLL04OKr FOC+NGRCJsfdoi4x4NpfqXh4FJy/yJ93HuHsCw0Qwi0R8C6XB6pZL+1XP0hFpcvB2kpX vtVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@sourceforge.net header.s=x header.b=mMraHfcS; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=D5Zw0c41; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FoizIofh; 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 e2-20020a636902000000b0046f4696a544si18737753pgc.128.2022.12.29.05.48.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 29 Dec 2022 05:48:10 -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=mMraHfcS; dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x header.b=D5Zw0c41; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=FoizIofh; 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 1pAtG5-0006j6-7g; Thu, 29 Dec 2022 13:47:45 +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 1pAtG3-0006iv-3W for openvpn-devel@lists.sourceforge.net; Thu, 29 Dec 2022 13:47:43 +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=pFs00YlTcwgfCyqUOMAMGMgJr4lLbDTQsRqflKQyTx8=; b=mMraHfcSbAYMRsKpVP+fSmA8C3 qr8n7a6GKpZs1nbWY7NlqNe6K8QZs8ImqkBlDOiJNaGv+ZmTsTdk1qt2dXA+cEXuQa0uODWgMMizQ fF3xq+2jsAXnGDtglmxYn9eEHlAratN4JsCeBJoPVFzzxkzTFpN8dUeQrPAk+YPUW7b8=; 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=pFs00YlTcwgfCyqUOMAMGMgJr4lLbDTQsRqflKQyTx8=; b=D5Zw0c41bwZTHfdiogz5PUIuBP q3yYSAA7OY0fBMSqz3Hdqz/cFiJLEbH9OhGOzUbWkOKPawBPFBKrrPlZZYoTKDWA2tg9oF07IgsHI 1ThNBUqyLTKR9ffBM8MQ7xiCzWL5mR4ygU6Y8KcNHXSFP9gJXJ5PY43WUYjkbFTt681I=; Received: from mail-il1-f171.google.com ([209.85.166.171]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95) id 1pAtG2-00GEol-Cs for openvpn-devel@lists.sourceforge.net; Thu, 29 Dec 2022 13:47:43 +0000 Received: by mail-il1-f171.google.com with SMTP id c20so5915835ilj.10 for ; Thu, 29 Dec 2022 05:47:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pFs00YlTcwgfCyqUOMAMGMgJr4lLbDTQsRqflKQyTx8=; b=FoizIofh1RPmL/cvyTKSM5NhJC07UUNl49JdUMLs5aLSJPI7VwFzRxeou5qN4+w+bh iont8KjjLQDlEur3UrNb/UsH7ZGKCBqtZYDWXQzP7HcjSLqXzQ+iZMQU7gJuFtRvcyq4 NobU6xcs0qwMmnhYLUsPj+vryCgE0YBGUsHFDT63TkE1uM5UDjONr6v940DIyZzj0xeX esoyvDCGNt4aaAsD7wUewEw5qY7dGlAwSXpMTcHeXB8l+6jh6LqmCsZ+ANOvzp5wtbVr fCJYEs410uiRDd3sOXRmSTyna142NOScIIUempl4xSQzz3Xdo7pdhxE0FB43gsGbsYtg xiGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pFs00YlTcwgfCyqUOMAMGMgJr4lLbDTQsRqflKQyTx8=; b=Q3ECYgeGLRKMX+bN9jtTx7p1uqsgCi2Y51QgmdzrxiO1y3U0H8y551Sd4S4lUSt+Mw NPDNd3qxAu3+YYO2nqtRH9IM9nWqG2X1veTRpLoh/kpIKFE8LmA3V5qZuBaUenQQlYK2 ZSkjZ+JEze1eBAP8+uvjdGkiQIA6++w3UxOGFB11sOVWbRmXhSrtDVwzNg8g9T0uW+ZG OXvV9j5zPGtaBJzKtUm86MDk3ArCvKdjkvHbdmhRbRR4Yw/YoS5QVmpfFv+MdsgAvuxN glERiqOciKLJlTVVzkJE6IdGxUJMNUAT5F93lCHOp1Nv4IYdp+SxtJUIL6CWcPCg/Da8 d70g== X-Gm-Message-State: AFqh2kodFXGBXjvkNc80nm1d112zB2c8nb6Cl2l+6XHRRom1/dtIvFWq lZmFc2U3TlAlJGSg03hHl2BxFey5UgD9ig== X-Received: by 2002:a05:6e02:13e1:b0:30c:276b:af80 with SMTP id w1-20020a056e0213e100b0030c276baf80mr397653ilj.0.1672321656508; Thu, 29 Dec 2022 05:47:36 -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 d6-20020a026206000000b00374fa5b600csm5931098jac.0.2022.12.29.05.47.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 05:47:36 -0800 (PST) From: selva.nair@gmail.com To: openvpn-devel@lists.sourceforge.net Date: Thu, 29 Dec 2022 08:47:29 -0500 Message-Id: <20221229134729.1474034-1-selva.nair@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221229040717.1471276-1-selva.nair@gmail.com> References: <20221229040717.1471276-1-selva.nair@gmail.com> 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.171 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.171 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: 1pAtG2-00GEol-Cs Subject: [Openvpn-devel] [PATCH v2] 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?1753556389326398617?= From: Selva Nair The return value of MapViewOfFile must be passed to UnmapViewofFile, instead of the file handle. Fixes #206 v2: move *ring = NULL inside if {} Signed-off-by: Selva Nair Acked-by: Lev Stipakov --- 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..47bcd72a 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); + *ring = NULL; } - return INVALID_HANDLE_VALUE; } 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();