Generic Memory Pools

1. Add checks for listSz against WOLFMEM_MAX_BUCKETS.
2. Use WOLFMEM_DEF_BUCKETS for the size when using the default memory
   descriptions.
3. Whitespace.
pull/7418/head
John Safranek 2024-04-12 09:31:40 -07:00
parent 15a0ae4244
commit 7a0bcb05fb
1 changed files with 6 additions and 6 deletions

View File

@ -662,7 +662,7 @@ int wc_LoadStaticMemory_ex(WOLFSSL_HEAP_HINT** pHint,
word32 idx = 0;
int ret;
if (pHint == NULL || buf == NULL) {
if (pHint == NULL || buf == NULL || listSz > WOLFMEM_MAX_BUCKETS) {
return BAD_FUNC_ARG;
}
@ -754,7 +754,7 @@ int wolfSSL_StaticBufferSz_ex(unsigned int listSz,
WOLFSSL_ENTER("wolfSSL_StaticBufferSz_ex");
if (buffer == NULL) {
if (buffer == NULL || listSz > WOLFMEM_MAX_BUCKETS) {
return BAD_FUNC_ARG;
}
@ -781,7 +781,7 @@ int wolfSSL_StaticBufferSz_ex(unsigned int listSz,
while ((ava >= (sizeList[0] + padSz + memSz)) && (ava > 0)) {
/* start at largest and move to smaller buckets */
for (i = (listSz- 1); i >= 0; i--) {
for (i = (listSz - 1); i >= 0; i--) {
for (k = distList[i]; k > 0; k--) {
if ((sizeList[i] + padSz + memSz) <= ava) {
ava -= sizeList[i] + padSz + memSz;
@ -800,10 +800,10 @@ int wolfSSL_StaticBufferSz_ex(unsigned int listSz,
* used by wolfSSL by default. */
int wolfSSL_StaticBufferSz(byte* buffer, word32 sz, int flag)
{
word32 bucketSz[WOLFMEM_MAX_BUCKETS] = {WOLFMEM_BUCKETS};
word32 distList[WOLFMEM_MAX_BUCKETS] = {WOLFMEM_DIST};
word32 bucketSz[WOLFMEM_DEF_BUCKETS] = {WOLFMEM_BUCKETS};
word32 distList[WOLFMEM_DEF_BUCKETS] = {WOLFMEM_DIST};
return wolfSSL_StaticBufferSz_ex(WOLFMEM_MAX_BUCKETS, bucketSz, distList,
return wolfSSL_StaticBufferSz_ex(WOLFMEM_DEF_BUCKETS, bucketSz, distList,
buffer, sz, flag);
}