From 1abb5c36bd0055c203f3f283924ebdcfc029c073 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 20 May 2017 02:20:25 -0400 Subject: [PATCH] Revert "Clear coverity finding FORWARD_NULL (CID 147865)" This broke some self tests. --- cryptlib.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cryptlib.cpp b/cryptlib.cpp index 9f1e749c..24eb0209 100644 --- a/cryptlib.cpp +++ b/cryptlib.cpp @@ -171,18 +171,18 @@ size_t BlockTransformation::AdvancedProcessBlocks(const byte *inBlocks, const by outIncrement = 0-outIncrement; } - // Coverity finding CID 147865. In practice, if BT_XorInput, then xorBlocks is non-NULL. - bool xorFlag = (flags & BT_XorInput) && (xorBlocks != NULLPTR); while (length >= blockSize) { - if (xorFlag) + if (flags & BT_XorInput) { + // Coverity finding. However, xorBlocks is never NULL if BT_XorInput. + CRYPTOPP_ASSERT(xorBlocks); xorbuf(outBlocks, xorBlocks, inBlocks, blockSize); - xorBlocks += xorIncrement; ProcessBlock(outBlocks); } else { + // xorBlocks can be NULL. See, for example, ECB_OneWay::ProcessData. ProcessAndXorBlock(inBlocks, xorBlocks, outBlocks); } @@ -190,6 +190,7 @@ size_t BlockTransformation::AdvancedProcessBlocks(const byte *inBlocks, const by const_cast(inBlocks)[blockSize-1]++; inBlocks += inIncrement; outBlocks += outIncrement; + xorBlocks += xorIncrement; length -= blockSize; }