From 97f015b07c1bff256eff2e59a051b1c25dee4515 Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 19 Dec 2023 13:55:52 -0800 Subject: [PATCH] Fix for portability case where XREALLOC is not available. --- src/internal.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/internal.c b/src/internal.c index 4e0fa11..9f0ca81 100644 --- a/src/internal.c +++ b/src/internal.c @@ -8056,6 +8056,7 @@ int WP11_AesGcm_DecryptUpdate(unsigned char* enc, word32 encSz, unsigned char* newEnc; WP11_GcmParams* gcm = &session->params.gcm; +#ifdef XREALLOC newEnc = (unsigned char*)XREALLOC(gcm->enc, gcm->encSz + encSz, NULL, DYNAMIC_TYPE_TMP_BUFFER); if (newEnc == NULL) @@ -8065,6 +8066,20 @@ int WP11_AesGcm_DecryptUpdate(unsigned char* enc, word32 encSz, XMEMCPY(gcm->enc + gcm->encSz, enc, encSz); gcm->encSz += encSz; } +#else + newEnc = (unsigned char*)XMALLOC(gcm->encSz + encSz, NULL, + DYNAMIC_TYPE_TMP_BUFFER); + if (newEnc == NULL) + ret = MEMORY_E; + if (ret == 0) { + if (gcm->enc != NULL) + XMEMCPY(newEnc, gcm->enc, gcm->encSz); + XFREE(gcm->enc, NULL, DYNAMIC_TYPE_TMP_BUFFER); + gcm->enc = newEnc; + XMEMCPY(gcm->enc + gcm->encSz, enc, encSz); + gcm->encSz += encSz; + } +#endif /* !XREALLOC */ return ret; }