Increase use of ptrdiff_t when performing pointer math

pull/687/head
Jeffrey Walton 2018-07-10 17:31:01 -04:00
parent 961e9b483c
commit 004d213e29
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 6 additions and 6 deletions

View File

@ -275,7 +275,7 @@ byte *FilterWithBufferedInput::BlockQueue::GetBlock()
byte *FilterWithBufferedInput::BlockQueue::GetContigousBlocks(size_t &numberOfBytes) byte *FilterWithBufferedInput::BlockQueue::GetContigousBlocks(size_t &numberOfBytes)
{ {
numberOfBytes = STDMIN(numberOfBytes, STDMIN(size_t(m_buffer.end()-m_begin), m_size)); numberOfBytes = STDMIN(numberOfBytes, STDMIN<size_t>(PtrDiff(m_buffer.end(), m_begin), m_size));
byte *ptr = m_begin; byte *ptr = m_begin;
m_begin = PtrAdd(m_begin, numberOfBytes); m_begin = PtrAdd(m_begin, numberOfBytes);
m_size -= numberOfBytes; m_size -= numberOfBytes;
@ -293,7 +293,7 @@ size_t FilterWithBufferedInput::BlockQueue::GetAll(byte *outString)
size_t numberOfBytes = m_maxBlocks*m_blockSize; size_t numberOfBytes = m_maxBlocks*m_blockSize;
const byte *ptr = GetContigousBlocks(numberOfBytes); const byte *ptr = GetContigousBlocks(numberOfBytes);
memcpy(outString, ptr, numberOfBytes); memcpy(outString, ptr, numberOfBytes);
memcpy(outString+numberOfBytes, m_begin, m_size); memcpy(PtrAdd(outString, numberOfBytes), m_begin, m_size);
m_size = 0; m_size = 0;
return size; return size;
} }
@ -798,18 +798,18 @@ void StreamTransformationFilter::LastPut(const byte *inString, size_t length)
{ {
CRYPTOPP_ASSERT(s < 256); CRYPTOPP_ASSERT(s < 256);
byte pad = static_cast<byte>(s-length); byte pad = static_cast<byte>(s-length);
memset(space+length, pad, s-length); memset(PtrAdd(space, length), pad, s-length);
} }
else if (m_padding == W3C_PADDING) else if (m_padding == W3C_PADDING)
{ {
CRYPTOPP_ASSERT(s < 256); CRYPTOPP_ASSERT(s < 256);
memset(space+length, 0, s-length-1); memset(PtrAdd(space, length), 0, s-length-1);
space[s-1] = static_cast<byte>(s-length); space[s-1] = static_cast<byte>(s-length);
} }
else else
{ {
space[length] = 0x80; space[length] = 0x80;
memset(space+length+1, 0, s-length-1); memset(PtrAdd(space, length+1), 0, s-length-1);
} }
m_cipher.ProcessData(space, space, s); m_cipher.ProcessData(space, space, s);
AttachedTransformation()->Put(space, s); AttachedTransformation()->Put(space, s);
@ -822,7 +822,7 @@ void StreamTransformationFilter::LastPut(const byte *inString, size_t length)
if (m_padding == PKCS_PADDING) if (m_padding == PKCS_PADDING)
{ {
byte pad = space[s-1]; byte pad = space[s-1];
if (pad < 1 || pad > s || FindIfNot(space+s-pad, space+s, pad) != space+s) if (pad < 1 || pad > s || FindIfNot(PtrAdd(space, s-pad), PtrAdd(space, s), pad) != PtrAdd(space, s))
throw InvalidCiphertext("StreamTransformationFilter: invalid PKCS #7 block padding found"); throw InvalidCiphertext("StreamTransformationFilter: invalid PKCS #7 block padding found");
length = s-pad; length = s-pad;
} }