<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b1288a087a89ec3f656f3dca378258eafbaf28b4">https://github.com/macports/macports-ports/commit/b1288a087a89ec3f656f3dca378258eafbaf28b4</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new b1288a087a8 openssl3: update to 3.3.1 and 3.1.6
</span>b1288a087a8 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit b1288a087a89ec3f656f3dca378258eafbaf28b4
</span>Author: Herby Gillot <herby.gillot@gmail.com>
AuthorDate: Tue Jun 4 13:14:08 2024 -0400

<span style='display:block; white-space:pre;color:#404040;'>    openssl3: update to 3.3.1 and 3.1.6
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    - remove patches that are now already part of upstream
</span>---
 devel/openssl3/Portfile                            |  20 ++--
 .../7e4d731b1c07201ad9374c1cd9ac5263bdf35bce.patch | 116 ---------------------
 .../e9d7083e241670332e0443da0f0d4ffb52829f08.patch | 116 ---------------------
 3 files changed, 9 insertions(+), 243 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/Portfile b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d55c0eb5b04..ff549d33baf 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,7 @@ set major_v         3
</span> name                openssl$major_v
 # For rolling back to 3.1.4 release where needed. Must now stay.
 epoch               1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             ${major_v}.3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             ${major_v}.3.1
</span> revision            0
 
 # Please revbump these ports when updating the openssl3 version/revision
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,9 +49,9 @@ master_sites        ${homepage}/source \
</span>                     ftp://ftp.linux.hr/pub/openssl/source/ \
                     ftp://guest.kuria.katowice.pl/pub/openssl/source/
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  f40110b7637192382a8009c5aba64ff1dd470e49 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    18038030
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  f7d3736a023dcf7d40db016182ca6d1de5a6fa69 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    18055752
</span> 
 # 3.2.0 is currently broken for OS < 10.14, see #68766
 if {${os.platform} eq "darwin" && ${os.major} < 18} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -62,16 +62,14 @@ if {${os.platform} eq "darwin" && ${os.major} < 18} {
</span> 
     if {$subport eq $name} {
         conflicts           ${name}-devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        version             ${major_v}.1.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        version             ${major_v}.1.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        revision            0
</span> 
         distname            openssl-${version}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        checksums           rmd160  9c3e80f27e0b15b6b46774a944d75cf034358474 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            sha256  6ae015467dabf0469b139ada93319327be24b98251ffaeceda0221848dc09262 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            size    15663524
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append   7e4d731b1c07201ad9374c1cd9ac5263bdf35bce.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums           rmd160  4f026a75f201f77cdfe1f5976d5a57883cce060f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            sha256  5d2be4036b478ef3cb0a854ca9b353072c3a0e26d8a56f8f0ab9fb6ed32d38d7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            size    15672690
</span>     }
 
 }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/files/7e4d731b1c07201ad9374c1cd9ac5263bdf35bce.patch b/devel/openssl3/files/7e4d731b1c07201ad9374c1cd9ac5263bdf35bce.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 2b002ec5cf6..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/files/7e4d731b1c07201ad9374c1cd9ac5263bdf35bce.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,116 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 7e4d731b1c07201ad9374c1cd9ac5263bdf35bce Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Matt Caswell <matt@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 5 Mar 2024 15:43:53 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Fix unconstrained session cache growth in TLSv1.3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In TLSv1.3 we create a new session object for each ticket that we send.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-We do this by duplicating the original session. If SSL_OP_NO_TICKET is in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use then the new session will be added to the session cache. However, if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-early data is not in use (and therefore anti-replay protection is being
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-used), then multiple threads could be resuming from the same session
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-simultaneously. If this happens and a problem occurs on one of the threads,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-then the original session object could be marked as not_resumable. When we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-duplicate the session object this not_resumable status gets copied into the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new session object. The new session object is then added to the session
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cache even though it is not_resumable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subsequently, another bug means that the session_id_length is set to 0 for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-sessions that are marked as not_resumable - even though that session is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-still in the cache. Once this happens the session can never be removed from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the cache. When that object gets to be the session cache tail object the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cache never shrinks again and grows indefinitely.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CVE-2024-2511
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Neil Horman <nhorman@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Tomas Mraz <tomas@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(Merged from https://github.com/openssl/openssl/pull/24044)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/ssl_lib.c            |  5 +++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/ssl_sess.c           | 28 ++++++++++++++++++++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/statem/statem_srvr.c |  5 ++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 27 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b5cc4af2f0302..e747b7f90aa71 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3737,9 +3737,10 @@ void ssl_update_cache(SSL *s, int mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * If the session_id_length is 0, we are not supposed to cache it, and it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--     * would be rather hard to do anyway :-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     * would be rather hard to do anyway :-). Also if the session has already
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     * been marked as not_resumable we should not cache it for later reuse.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (s->session->session_id_length == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (s->session->session_id_length == 0 || s->session->not_resumable)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bf84e792251b8..241cf43c46296 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -154,16 +154,11 @@ SSL_SESSION *SSL_SESSION_new(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return ss;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return ssl_session_dup(src, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Create a new SSL_SESSION and duplicate the contents of |src| into it. If
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * ticket == 0 then no ticket information is duplicated, otherwise it is.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static SSL_SESSION *ssl_session_dup_intern(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     SSL_SESSION *dest;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -287,6 +282,27 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return ssl_session_dup_intern(src, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Used internally when duplicating a session which might be already shared.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * We will have resumed the original session. Subsequently we might have marked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * it as non-resumable (e.g. in another thread) - but this copy should be ok to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * resume from.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SSL_SESSION *sess = ssl_session_dup_intern(src, ticket);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (sess != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        sess->not_resumable = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return sess;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5d59d53563ed8..8e493176f658e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2338,9 +2338,8 @@ int tls_construct_server_hello(SSL *s, WPACKET *pkt)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * so the following won't overwrite an ID that we're supposed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * to send back.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (s->session->not_resumable ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        (!(s->ctx->session_cache_mode & SSL_SESS_CACHE_SERVER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         && !s->hit))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (!(s->ctx->session_cache_mode & SSL_SESS_CACHE_SERVER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            && !s->hit)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         s->session->session_id_length = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (usetls13) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/files/e9d7083e241670332e0443da0f0d4ffb52829f08.patch b/devel/openssl3/files/e9d7083e241670332e0443da0f0d4ffb52829f08.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a3827fdc6e9..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/files/e9d7083e241670332e0443da0f0d4ffb52829f08.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,116 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From e9d7083e241670332e0443da0f0d4ffb52829f08 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Matt Caswell <matt@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 5 Mar 2024 15:43:53 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Fix unconstrained session cache growth in TLSv1.3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In TLSv1.3 we create a new session object for each ticket that we send.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-We do this by duplicating the original session. If SSL_OP_NO_TICKET is in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use then the new session will be added to the session cache. However, if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-early data is not in use (and therefore anti-replay protection is being
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-used), then multiple threads could be resuming from the same session
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-simultaneously. If this happens and a problem occurs on one of the threads,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-then the original session object could be marked as not_resumable. When we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-duplicate the session object this not_resumable status gets copied into the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new session object. The new session object is then added to the session
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cache even though it is not_resumable.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subsequently, another bug means that the session_id_length is set to 0 for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-sessions that are marked as not_resumable - even though that session is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-still in the cache. Once this happens the session can never be removed from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the cache. When that object gets to be the session cache tail object the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cache never shrinks again and grows indefinitely.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CVE-2024-2511
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Neil Horman <nhorman@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Tomas Mraz <tomas@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(Merged from https://github.com/openssl/openssl/pull/24043)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/ssl_lib.c            |  5 +++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/ssl_sess.c           | 28 ++++++++++++++++++++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ssl/statem/statem_srvr.c |  5 ++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 27 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4afb43bc86e54..c51529ddab5bb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/ssl_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4457,9 +4457,10 @@ void ssl_update_cache(SSL_CONNECTION *s, int mode)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * If the session_id_length is 0, we are not supposed to cache it, and it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--     * would be rather hard to do anyway :-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     * would be rather hard to do anyway :-). Also if the session has already
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     * been marked as not_resumable we should not cache it for later reuse.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (s->session->session_id_length == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (s->session->session_id_length == 0 || s->session->not_resumable)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3dcc4d81e5bc6..1fa6d17c46863 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/ssl_sess.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -127,16 +127,11 @@ SSL_SESSION *SSL_SESSION_new(void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return ss;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return ssl_session_dup(src, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Create a new SSL_SESSION and duplicate the contents of |src| into it. If
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * ticket == 0 then no ticket information is duplicated, otherwise it is.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static SSL_SESSION *ssl_session_dup_intern(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     SSL_SESSION *dest;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -265,6 +260,27 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return ssl_session_dup_intern(src, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Used internally when duplicating a session which might be already shared.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * We will have resumed the original session. Subsequently we might have marked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * it as non-resumable (e.g. in another thread) - but this copy should be ok to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * resume from.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    SSL_SESSION *sess = ssl_session_dup_intern(src, ticket);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (sess != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        sess->not_resumable = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return sess;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 853af8c0aa9f9..d5f0ab091dacc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----  ./ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++  ./ssl/statem/statem_srvr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2445,9 +2445,8 @@ CON_FUNC_RETURN tls_construct_server_hello(SSL_CONNECTION *s, WPACKET *pkt)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * so the following won't overwrite an ID that we're supposed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * to send back.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (s->session->not_resumable ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        (!(SSL_CONNECTION_GET_CTX(s)->session_cache_mode & SSL_SESS_CACHE_SERVER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         && !s->hit))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (!(SSL_CONNECTION_GET_CTX(s)->session_cache_mode & SSL_SESS_CACHE_SERVER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            && !s->hit)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         s->session->session_id_length = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (usetls13) {
</span></pre><pre style='margin:0'>

</pre>