]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
fix(ssl): init peer_id when init tls_multi
authoryatta <ytzhang01@foxmail.com>
Thu, 19 Oct 2023 17:12:13 +0000 (01:12 +0800)
committerGert Doering <gert@greenie.muc.de>
Tue, 26 Dec 2023 20:18:12 +0000 (21:18 +0100)
When openvpn run in UDP server mode, if ssl connections reach the
max clients, the next connection would be failed in `multi_create_instance`
and the half connection will be close in `multi_close_instance`, which
may lead array `m->instances[0]` covered unexpectedly and make the
first connection interrupt, this patch fix this problem by init `peer_id`
with `MAX_PEER_ID` in `tils_multi_init`.

Signed-off-by: yatta <ytzhang01@foxmail.com
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <tencent_C49D67EAA5678D180C293706A9469EFE8307@qq.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27260.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 3e30504d86f0fe5556acc0cb8e6975c5b2277661)

src/openvpn/ssl.c

index 698c40038c898bea0b04865ec31e70602722a663..76b16f3074a3fc7a84c0999672b83dbee53dcfda 100644 (file)
@@ -64,6 +64,7 @@
 #include "dco.h"
 
 #include "memdbg.h"
+#include "openvpn.h"
 
 #ifdef MEASURE_TLS_HANDSHAKE_STATS
 
@@ -1315,6 +1316,7 @@ tls_multi_init(struct tls_options *tls_options)
     /* get command line derived options */
     ret->opt = *tls_options;
     ret->dco_peer_id = -1;
+    ret->peer_id = MAX_PEER_ID;
 
     return ret;
 }