Catch allocation failure in DecodeResponseData

This commit is contained in:
Guido Vranken
2021-06-06 03:12:53 +02:00
parent d7117cd8bb
commit 76e0a8666b

View File

@@ -17472,12 +17472,20 @@ static int DecodeResponseData(byte* source,
if (single->next == NULL) {
return MEMORY_E;
}
single = single->next;
XMEMSET(single, 0, sizeof(OcspEntry));
single->status = (CertStatus*)XMALLOC(sizeof(CertStatus),
XMEMSET(single->next, 0, sizeof(OcspEntry));
single->next->status = (CertStatus*)XMALLOC(sizeof(CertStatus),
resp->heap, DYNAMIC_TYPE_OCSP_STATUS);
XMEMSET(single->status, 0, sizeof(CertStatus));
single->isDynamic = 1;
if ( single->next->status == NULL ) {
XFREE(single->next, resp->heap, DYNAMIC_TYPE_OCSP_ENTRY);
single->next = NULL;
return MEMORY_E;
}
XMEMSET(single->next->status, 0, sizeof(CertStatus));
single->next->isDynamic = 1;
single = single->next;
}
}