From patchwork Fri Apr 22 04:29:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arne Schwabe X-Patchwork-Id: 2389 Return-Path: Delivered-To: patchwork@openvpn.net Delivered-To: patchwork@openvpn.net Received: from director15.mail.ord1d.rsapps.net ([172.30.191.6]) by backend41.mail.ord1d.rsapps.net with LMTP id 6CeYOS28YmLeQwAAqwncew (envelope-from ) for ; Fri, 22 Apr 2022 10:31:09 -0400 Received: from proxy10.mail.ord1d.rsapps.net ([172.30.191.6]) by director15.mail.ord1d.rsapps.net with LMTP id ENG/Ey68YmI2QgAAIcMcQg (envelope-from ) for ; Fri, 22 Apr 2022 10:31:10 -0400 Received: from smtp40.gate.ord1d ([172.30.191.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by proxy10.mail.ord1d.rsapps.net with LMTPS id wF0LEy68YmJDEgAAfSg8FQ (envelope-from ) for ; Fri, 22 Apr 2022 10:31:10 -0400 X-Spam-Threshold: 95 X-Spam-Score: 0 X-Spam-Flag: NO X-Virus-Scanned: OK X-Orig-To: openvpnslackdevel@openvpn.net X-Originating-Ip: [216.105.38.7] Authentication-Results: smtp40.gate.ord1d.rsapps.net; iprev=pass policy.iprev="216.105.38.7"; spf=pass smtp.mailfrom="openvpn-devel-bounces@lists.sourceforge.net" smtp.helo="lists.sourceforge.net"; dkim=fail (signature verification failed) header.d=sourceforge.net; dkim=fail (signature verification failed) header.d=sf.net; dmarc=none (p=nil; dis=none) header.from=rfc2549.org X-Suspicious-Flag: YES X-Classification-ID: d9b1b368-c248-11ec-b1dc-525400f204c2-1-1 Received: from [216.105.38.7] ([216.105.38.7:38238] helo=lists.sourceforge.net) by smtp40.gate.ord1d.rsapps.net (envelope-from ) (ecelerity 4.2.38.62370 r(:)) with ESMTPS (cipher=DHE-RSA-AES256-GCM-SHA384) id 21/7B-02414-D2CB2626; Fri, 22 Apr 2022 10:31:09 -0400 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.94.2) (envelope-from ) id 1nhuIg-0000eX-Gd; Fri, 22 Apr 2022 14:30: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.94.2) (envelope-from ) id 1nhuIe-0000e5-Hu for openvpn-devel@lists.sourceforge.net; Fri, 22 Apr 2022 14:30:19 +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=n7tSRCjZ1MkV5QnZQE63IE2CKFijZ6K+Y5059kOTW38=; b=eZ4fyaPA1YD7+T0m36+s8ntebk oQsSgz1qveXtVEll8GxF7wvv0lM2oCKj8htXfH9GM+Jjj5BzFtCyWD7Vf/RjDn+IO6dLOZ22REGKm adPqVSdDIGtNzUv/8oJ7Fbo8Y345QZShM9fPJhmR0pVGkzKwZth6Xpu2G1O/8BQ3GTrs=; 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=n7tSRCjZ1MkV5QnZQE63IE2CKFijZ6K+Y5059kOTW38=; b=aHuvxVqOCe4KII/ocjGqTjAnBc kYC22Fh+kuwQdIfR6faRqsIENOwdMUN+l8GLNIdtoJkV0P1d2vkZD7QNu8Ta+J3eITmvzdJRKawgi 9p2Zw8zRYst4xgGomAtHyrPW0iiun/FmgKo4iVZyc92RBAciLLb39LGZfgC7S4Cl5gN0=; Received: from mail.blinkt.de ([192.26.174.232]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.94.2) id 1nhuIL-0005dj-IE for openvpn-devel@lists.sourceforge.net; Fri, 22 Apr 2022 14:30:02 +0000 Received: from kamera.blinkt.de ([2001:638:502:390:20c:29ff:fec8:535c]) by mail.blinkt.de with smtp (Exim 4.95 (FreeBSD)) (envelope-from ) id 1nhuIE-00096o-1O for openvpn-devel@lists.sourceforge.net; Fri, 22 Apr 2022 16:29:54 +0200 Received: (nullmailer pid 3805441 invoked by uid 10006); Fri, 22 Apr 2022 14:29:53 -0000 From: Arne Schwabe To: openvpn-devel@lists.sourceforge.net Date: Fri, 22 Apr 2022 16:29:45 +0200 Message-Id: <20220422142953.3805364-11-arne@rfc2549.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220422142953.3805364-1-arne@rfc2549.org> References: <20220422134038.3801239-1-arne@rfc2549.org> <20220422142953.3805364-1-arne@rfc2549.org> MIME-Version: 1.0 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: This returns not just the buffer of a reliable_entry but the whole entry. This allows the caller to also inspect the original opcode and packet id. --- src/openvpn/reliable.c | 6 +++--- src/openvpn/re [...] Content analysis details: (0.3 points, 6.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 SPF_NONE SPF: sender does not publish an SPF Record X-Headers-End: 1nhuIL-0005dj-IE Subject: [Openvpn-devel] [PATCH 20/28] Change reliable_get_buf_sequenced to reliable_get_entry_sequenced 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 This returns not just the buffer of a reliable_entry but the whole entry. This allows the caller to also inspect the original opcode and packet id. Acked-By: Frank Lichtenheld --- src/openvpn/reliable.c | 6 +++--- src/openvpn/reliable.h | 7 +++---- src/openvpn/ssl.c | 7 ++++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/openvpn/reliable.c b/src/openvpn/reliable.c index 5c897b225..372444350 100644 --- a/src/openvpn/reliable.c +++ b/src/openvpn/reliable.c @@ -533,8 +533,8 @@ reliable_get_buf_output_sequenced(struct reliable *rel) } /* get active buffer for next sequentially increasing key ID */ -struct buffer * -reliable_get_buf_sequenced(struct reliable *rel) +struct reliable_entry * +reliable_get_entry_sequenced(struct reliable *rel) { int i; for (i = 0; i < rel->size; ++i) @@ -542,7 +542,7 @@ reliable_get_buf_sequenced(struct reliable *rel) struct reliable_entry *e = &rel->array[i]; if (e->active && e->packet_id == rel->packet_id) { - return &e->buf; + return e; } } return NULL; diff --git a/src/openvpn/reliable.h b/src/openvpn/reliable.h index b045410a7..0bc8ab913 100644 --- a/src/openvpn/reliable.h +++ b/src/openvpn/reliable.h @@ -351,11 +351,10 @@ bool reliable_ack_acknowledge_packet_id(struct reliable_ack *ack, packet_id_type * @param rel The reliable structure from which to retrieve the * buffer. * - * @return A pointer to the buffer of the entry with the next - * sequential key ID. If no such entry is present, this function - * returns NULL. + * @return A pointer to the entry with the next sequential key ID. + * If no such entry is present, this function returns NULL. */ -struct buffer *reliable_get_buf_sequenced(struct reliable *rel); +struct reliable_entry *reliable_get_entry_sequenced(struct reliable *rel); /** * Remove an entry from a reliable structure. diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c index dca62a875..80440c411 100644 --- a/src/openvpn/ssl.c +++ b/src/openvpn/ssl.c @@ -2592,9 +2592,10 @@ tls_process_state(struct tls_multi *multi, } /* Write incoming ciphertext to TLS object */ - struct buffer *buf = reliable_get_buf_sequenced(ks->rec_reliable); - if (buf) + struct reliable_entry *entry = reliable_get_entry_sequenced(ks->rec_reliable); + if (entry) { + struct buffer *buf = &entry->buf; int status = 0; if (buf->len) { @@ -2619,7 +2620,7 @@ tls_process_state(struct tls_multi *multi, } /* Read incoming plaintext from TLS object */ - buf = &ks->plaintext_read_buf; + struct buffer *buf = &ks->plaintext_read_buf; if (!buf->len) { int status;