fix(qat): fenrir 585 null-check buffers before memcpy

This commit is contained in:
David Garske
2026-05-18 13:53:29 -07:00
parent 0ea4fa0f97
commit 2fad30e394
+4 -3
View File
@@ -969,9 +969,7 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in,
flatBuffer = &dev->op.cipher.flatBuffer;
metaBuf = XMALLOC(metaSize, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
dataBuf = XMALLOC(dataLen, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
XMEMCPY(dataBuf, in, inOutSz);
ivBuf = XMALLOC(WC_AES_BLOCK_SIZE, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
XMEMCPY(ivBuf, iv, ivSz);
authTagBuf = XMALLOC(authTagSz, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
/* check allocations */
@@ -980,6 +978,9 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in,
ret = MEMORY_E; goto exit;
}
XMEMCPY(dataBuf, in, inOutSz);
XMEMCPY(ivBuf, iv, ivSz);
/* AAD */
if (authIn && authInSz > 0) {
/* make sure AAD is block aligned */
@@ -990,10 +991,10 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in,
authInBuf = XMALLOC(authInSzAligned, dev->heap,
DYNAMIC_TYPE_ASYNC_NUMA);
XMEMCPY(authInBuf, authIn, authInSz);
if (authInBuf == NULL) {
ret = MEMORY_E; goto exit;
}
XMEMCPY(authInBuf, authIn, authInSz);
/* clear remainder */
XMEMSET(authInBuf + authInSz, 0, authInSzAligned - authInSz);
}