Fix BIO based on review

This commit is contained in:
Ludovic FLAMENT
2016-06-24 10:54:58 +02:00
parent f6bbe845f5
commit 0c43123a01
9 changed files with 254 additions and 212 deletions

View File

@@ -7786,9 +7786,30 @@ int DupSession(WOLFSSL* ssl, WOLFSSL* ossl)
sizeof(ossl->session.serverID));
#endif
#ifdef HAVE_SESSION_TICKET
ssl->session.isDynamic = ossl->session.isDynamic;
ssl->session.ticketLen = ossl->session.ticketLen;
XMEMCPY(ssl->session.ticket, ossl->session.ticket,
sizeof(ossl->session.ticket));
if (ossl->session.isDynamic) {
if (ssl->session.ticket != NULL)
XFREE(ssl->session.ticket, ssl->heap, DYNAMIC_TYPE_SESSION_TICK);
ssl->session.ticket = (byte*)XMALLOC(ossl->session.ticketLen, ssl->heap,
DYNAMIC_TYPE_SESSION_TICK);
if (ssl->session.ticket == NULL)
return SSL_FAILURE;
XMEMCPY(ssl->session.ticket, ossl->session.ticket,
ossl->session.ticketLen);
}
else {
if (ossl->session.ticketLen > SESSION_TICKET_LEN) {
/* size of static ticket is not large enough, should be dynamic!!!
* do not try copy */
return SSL_FAILURE;
}
XMEMCPY(ssl->session.staticTicket, ossl->session.staticTicket,
sizeof(ossl->session.staticTicket));
ssl->session.ticket = ssl->session.staticTicket;
}
#endif
#ifdef HAVE_STUNNEL
{