mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 20:24:39 +02:00
fixup! ocsp: don't free ocsp request if saved in ssl->ctx->certOcspRequest
This commit is contained in:
@@ -23311,14 +23311,16 @@ int SendFinished(WOLFSSL* ssl)
|
|||||||
*/
|
*/
|
||||||
static int CreateOcspRequest(WOLFSSL* ssl, OcspRequest* request,
|
static int CreateOcspRequest(WOLFSSL* ssl, OcspRequest* request,
|
||||||
DecodedCert* cert, byte* certData, word32 length,
|
DecodedCert* cert, byte* certData, word32 length,
|
||||||
byte *takeOwnership)
|
byte *ctxOwnsRequest)
|
||||||
{
|
{
|
||||||
byte ctxOwnsRequest = 0;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (request != NULL)
|
if (request != NULL)
|
||||||
XMEMSET(request, 0, sizeof(OcspRequest));
|
XMEMSET(request, 0, sizeof(OcspRequest));
|
||||||
|
|
||||||
|
if (ctxOwnsRequest!= NULL)
|
||||||
|
*ctxOwnsRequest = 0;
|
||||||
|
|
||||||
InitDecodedCert(cert, certData, length, ssl->heap);
|
InitDecodedCert(cert, certData, length, ssl->heap);
|
||||||
/* TODO: Setup async support here */
|
/* TODO: Setup async support here */
|
||||||
ret = ParseCertRelative(cert, CERT_TYPE, VERIFY, SSL_CM(ssl), NULL);
|
ret = ParseCertRelative(cert, CERT_TYPE, VERIFY, SSL_CM(ssl), NULL);
|
||||||
@@ -23334,7 +23336,8 @@ static int CreateOcspRequest(WOLFSSL* ssl, OcspRequest* request,
|
|||||||
if (wc_LockMutex(ocspLock) == 0) {
|
if (wc_LockMutex(ocspLock) == 0) {
|
||||||
if (ssl->ctx->certOcspRequest == NULL) {
|
if (ssl->ctx->certOcspRequest == NULL) {
|
||||||
ssl->ctx->certOcspRequest = request;
|
ssl->ctx->certOcspRequest = request;
|
||||||
ctxOwnsRequest = 1;
|
if (ctxOwnsRequest!= NULL)
|
||||||
|
*ctxOwnsRequest = 1;
|
||||||
}
|
}
|
||||||
wc_UnLockMutex(ocspLock);
|
wc_UnLockMutex(ocspLock);
|
||||||
}
|
}
|
||||||
@@ -23342,8 +23345,6 @@ static int CreateOcspRequest(WOLFSSL* ssl, OcspRequest* request,
|
|||||||
}
|
}
|
||||||
|
|
||||||
FreeDecodedCert(cert);
|
FreeDecodedCert(cert);
|
||||||
if (takeOwnership != NULL)
|
|
||||||
*takeOwnership = ctxOwnsRequest;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user