From 823bc93357da32a3a4a2b71b9915a4e124839d18 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Tue, 9 Feb 2016 16:37:19 -0500 Subject: [PATCH] Add call for _malloca/_freea. They are SDLC compliance items on Windows platform --- rijndael.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rijndael.cpp b/rijndael.cpp index 2fee3b6de..f394960df 100644 --- a/rijndael.cpp +++ b/rijndael.cpp @@ -1232,13 +1232,12 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo size_t regSpill, lengthAndCounterFlag, keysBegin; }; - size_t increment = BLOCKSIZE; const byte* zeros = (byte *)(Te+256); - byte *space; + byte *space = NULL; do { +#if (CRYPTOPP_MSC_VERSION >= 1400) // https://msdn.microsoft.com/en-us/library/5471dc8s.aspx -#if (CRYPTOPP_MSC_VERION >= 1400) space = (byte *)_malloca(255+sizeof(Locals)); space += (256-(size_t)space%256)%256; #else @@ -1248,6 +1247,7 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo } while (AliasedWithTable(space, space+sizeof(Locals))); + size_t increment = BLOCKSIZE; if (flags & BT_ReverseDirection) { assert(length % BLOCKSIZE == 0); @@ -1274,6 +1274,11 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo locals.keysBegin = (12-keysToCopy)*16; Rijndael_Enc_AdvancedProcessBlocks(&locals, m_key); + +#if (CRYPTOPP_MSC_VERSION >= 1400) + _freea(space); +#endif + return length % BLOCKSIZE; } #endif