From 92df2a685f55a4777a897f0a921ed06e3e21401a Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 25 May 2019 03:41:05 -0400 Subject: Clear Valgrind warnings on ARM I don't believe these should have been findings. They were clear on x86, Aarch64 and PowerPC. --- misc.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'misc.h') diff --git a/misc.h b/misc.h index 7a12175f..52ece09c 100644 --- a/misc.h +++ b/misc.h @@ -1225,9 +1225,16 @@ CRYPTOPP_DLL void CRYPTOPP_API CallNewHandler(); /// \note The function is not constant time because it stops processing when the carry is 0. inline void IncrementCounterByOne(byte *inout, unsigned int size) { - CRYPTOPP_ASSERT(inout != NULLPTR); CRYPTOPP_ASSERT(size < INT_MAX); - for (int i=int(size-1), carry=1; i>=0 && carry; i--) - carry = !++inout[i]; + unsigned int carry=1; + while (carry && size != 0) + { + // On wrap inout[n] equals 0 + carry = ! ++inout[size-1]; + size--; + } + + if (carry && size == 0) + inout[0]++; } /// \brief Performs an addition with carry on a block of bytes -- cgit v1.2.1