mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 12:41:00 +02:00
BUG/MEDIUM: ssl: properly reset the reused_sess during a forced handshake
We have a bug when SSL reuse is disabled on the server side : we reset the context but do not set it to NULL, causing a multiple free of the same entry. It seems like this bug cannot appear as-is with the current code (or the conditions to get it are not obvious) but it did definitely strike when trying to fix another bug with the SNI which forced a new handshake. This fix should be backported to 1.7, 1.6 and 1.5.
This commit is contained in:
parent
368780334c
commit
30fd4bd844
@ -3654,8 +3654,10 @@ reneg_ok:
|
||||
global.ssl_be_keys_max = global.ssl_be_keys_per_sec.curr_ctr;
|
||||
|
||||
/* check if session was reused, if not store current session on server for reuse */
|
||||
if (objt_server(conn->target)->ssl_ctx.reused_sess)
|
||||
if (objt_server(conn->target)->ssl_ctx.reused_sess) {
|
||||
SSL_SESSION_free(objt_server(conn->target)->ssl_ctx.reused_sess);
|
||||
objt_server(conn->target)->ssl_ctx.reused_sess = NULL;
|
||||
}
|
||||
|
||||
if (!(objt_server(conn->target)->ssl_ctx.options & SRV_SSL_O_NO_REUSE))
|
||||
objt_server(conn->target)->ssl_ctx.reused_sess = SSL_get1_session(conn->xprt_ctx);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user