]> 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:16:03 +0000 (21:16 +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>
src/openvpn/ssl.c

index 759741274fc6ef4e9b4df04bf2001c451d0ece64..33c86704622bacfc56f361e22907f1cc6218f420 100644 (file)
@@ -64,6 +64,7 @@
 #include "dco.h"
 
 #include "memdbg.h"
+#include "openvpn.h"
 
 #ifdef MEASURE_TLS_HANDSHAKE_STATS
 
@@ -1148,6 +1149,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;
 }