From 9afd26e85396db566438157081a7dfcc2e6b8020 Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 6 Feb 2018 09:28:27 -0800 Subject: [PATCH] Fixes for better supporting FREERTOS with and without static memory. Added fallback case to use pvPortMalloc/vPortFree when `heap` ptr not available. --- wolfcrypt/src/memory.c | 12 ++++++++++-- wolfssl/wolfcrypt/types.h | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/memory.c b/wolfcrypt/src/memory.c index a57894d58..865971750 100644 --- a/wolfcrypt/src/memory.c +++ b/wolfcrypt/src/memory.c @@ -533,7 +533,11 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type) } #else #ifndef WOLFSSL_NO_MALLOC - res = malloc(size); + #ifdef FREERTOS + res = pvPortMalloc(size); + #else + res = malloc(size); + #endif #else WOLFSSL_MSG("No heap hint found to use and no malloc"); #ifdef WOLFSSL_DEBUG_MEMORY @@ -667,7 +671,11 @@ void wolfSSL_Free(void *ptr, void* heap, int type) } #endif #ifndef WOLFSSL_NO_MALLOC - free(ptr); + #ifdef FREERTOS + vPortFree(ptr); + #else + free(ptr); + #endif #else WOLFSSL_MSG("Error trying to call free when turned off"); #endif /* WOLFSSL_NO_MALLOC */ diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index a425a0fdd..e4b0a15e8 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -246,7 +246,7 @@ #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp), (h), (t));} #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n), (h), (t)) #endif /* WOLFSSL_DEBUG_MEMORY */ - #else + #elif !defined(FREERTOS) && !defined(FREERTOS_TCP) #ifdef WOLFSSL_DEBUG_MEMORY #define XMALLOC(s, h, t) ((void)h, (void)t, wolfSSL_Malloc((s), __func__, __LINE__)) #define XFREE(p, h, t) {void* xp = (p); if((xp)) wolfSSL_Free((xp), __func__, __LINE__);}