Heap-allocate additional CertStatus structs in DecodeResponseData

This commit is contained in:
Guido Vranken
2021-05-26 21:41:47 +02:00
parent cfef249041
commit 1fbc3dc2d4

View File

@ -17472,10 +17472,11 @@ static int DecodeResponseData(byte* source,
if (single->next == NULL) {
return MEMORY_E;
}
CertStatus* status = single->status;
single = single->next;
XMEMSET(single, 0, sizeof(OcspEntry));
single->status = status;
single->status = (CertStatus*)XMALLOC(sizeof(CertStatus),
resp->heap, DYNAMIC_TYPE_OCSP_STATUS);
XMEMSET(single->status, 0, sizeof(CertStatus));
single->isDynamic = 1;
}
}
@ -17672,9 +17673,11 @@ void FreeOcspResponse(OcspResponse* resp)
OcspEntry *single, *next;
for (single = resp->single; single; single = next) {
next = single->next;
if (single->isDynamic)
if (single->isDynamic) {
XFREE(single->status, resp->heap, DYNAMIC_TYPE_OCSP_STATUS);
XFREE(single, resp->heap, DYNAMIC_TYPE_OCSP_ENTRY);
}
}
}