diff options
author | Jeffrey Walton <noloader@gmail.com> | 2015-11-18 15:32:28 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2015-11-18 15:32:28 -0500 |
commit | 6ac1e46a1fb01f01705b67dd553d5ba317b1dc3e (patch) | |
tree | f0d873d0b377a91dce5ee384e60426ef57efc92b /cmac.cpp | |
parent | d2fda9bd4231a7dfcb44e59150f11246d992843f (diff) | |
download | cryptopp-git-6ac1e46a1fb01f01705b67dd553d5ba317b1dc3e.tar.gz |
Cleared issues 11,12,13 (Clang integrated assembler), 58 (RC rollup), 66 (Coverity rollup)
Diffstat (limited to 'cmac.cpp')
-rw-r--r-- | cmac.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -57,6 +57,7 @@ void CMAC_Base::UncheckedSetKey(const byte *key, unsigned int length, const Name void CMAC_Base::Update(const byte *input, size_t length)
{
+ assert((input && length) || !(input || length));
if (!length)
return;
@@ -65,11 +66,14 @@ void CMAC_Base::Update(const byte *input, size_t length) if (m_counter > 0)
{
- unsigned int len = UnsignedMin(blockSize - m_counter, length);
- xorbuf(m_reg+m_counter, input, len);
- length -= len;
- input += len;
- m_counter += len;
+ const unsigned int len = UnsignedMin(blockSize - m_counter, length);
+ if (len)
+ {
+ xorbuf(m_reg+m_counter, input, len);
+ length -= len;
+ input += len;
+ m_counter += len;
+ }
if (m_counter == blockSize && length > 0)
{
|