quic: return 0 from SSL_CTX_sess_set_new_cb callback

The callback passed to `SSL_CTX_sess_set_new_cb()` should return 1
if it takes ownership (i.e. holds a reference that is later freed
through `SSL_SESSION_free()`) of the passed session, and 0
otherwise.

Since we don’t take ownership of the session and instead only save
a serialized version of it, return 0 instead of 1. This closes
a memory leak reported when running
`sequential/test-quic-preferred-address-ipv6`.

PR-URL: https://github.com/nodejs/node/pull/33931
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
pull/34021/head
Anna Henningsen 2020-06-17 20:15:21 +02:00 committed by James M Snell
parent a041723774
commit 0e7c8bdc0c
No known key found for this signature in database
GPG Key ID: 7341B15C070877AC
1 changed files with 1 additions and 1 deletions

View File

@ -2295,7 +2295,7 @@ int QuicSession::set_session(SSL_SESSION* session) {
if (size > SecureContext::kMaxSessionSize)
return 0;
listener_->OnSessionTicket(size, session);
return 1;
return 0;
}
// A client QuicSession can be migrated to a different QuicSocket instance.