mirror of https://github.com/openssl/openssl.git
Clear ownership when duplicating sessions
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20848)
This commit is contained in:
parent
13069d0144
commit
9fdf9a44bb
|
|
@ -169,9 +169,10 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
|
|||
dest->ticket_appdata = NULL;
|
||||
memset(&dest->ex_data, 0, sizeof(dest->ex_data));
|
||||
|
||||
/* We deliberately don't copy the prev and next pointers */
|
||||
/* As the copy is not in the cache, we remove the associated pointers */
|
||||
dest->prev = NULL;
|
||||
dest->next = NULL;
|
||||
dest->owner = NULL;
|
||||
|
||||
dest->references = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -2285,7 +2285,9 @@ static int execute_test_session(int maxprot, int use_int_cache,
|
|||
*/
|
||||
if (use_int_cache && maxprot != TLS1_3_VERSION) {
|
||||
if (!TEST_ptr(tmp = SSL_SESSION_dup(sess2))
|
||||
|| !TEST_true(SSL_CTX_remove_session(sctx, sess2)))
|
||||
|| !TEST_true(sess2->owner != NULL)
|
||||
|| !TEST_true(tmp->owner == NULL)
|
||||
|| !TEST_true(SSL_CTX_remove_session(sctx, sess2)))
|
||||
goto end;
|
||||
SSL_SESSION_free(sess2);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue