NcpBuffer: Fixing bug with handling of longer frame segments (#1643)

This commit is contained in:
Abtin Keshavarzian
2017-04-21 20:50:32 -07:00
committed by Jonathan Hui
parent 3d68d1ad3a
commit c4feef569c
2 changed files with 5 additions and 5 deletions
+4 -4
View File
@@ -121,7 +121,7 @@ uint8_t *NcpFrameBuffer::Next(uint8_t *aBufPtr) const
}
// Returns an advanced (moved forward) version of the given buffer pointer by the given offset.
uint8_t *NcpFrameBuffer::Advance(uint8_t *aBufPtr, uint8_t aOffset) const
uint8_t *NcpFrameBuffer::Advance(uint8_t *aBufPtr, uint16_t aOffset) const
{
aBufPtr += aOffset;
@@ -365,7 +365,7 @@ ThreadError NcpFrameBuffer::OutFramePrepareSegment(void)
// Find tail/end of current segment.
mReadSegmentTail = Advance(mReadSegmentHead,
kSegmentHeaderSize + static_cast<uint8_t>(header & kSegmentHeaderLengthMask));
kSegmentHeaderSize + (header & kSegmentHeaderLengthMask));
// Update the current read pointer to skip the segment header.
mReadPointer = Advance(mReadSegmentHead, kSegmentHeaderSize);
@@ -588,7 +588,7 @@ ThreadError NcpFrameBuffer::OutFrameRemove(void)
}
// Move the pointer to next segment.
bufPtr = Advance(bufPtr, kSegmentHeaderSize + static_cast<uint8_t>(header & kSegmentHeaderLengthMask));
bufPtr = Advance(bufPtr, kSegmentHeaderSize + (header & kSegmentHeaderLengthMask));
}
mReadFrameStart = bufPtr;
@@ -658,7 +658,7 @@ uint16_t NcpFrameBuffer::OutFrameGetLength(void)
frameLength += (header & kSegmentHeaderLengthMask);
// Move the pointer to next segment.
bufPtr = Advance(bufPtr, kSegmentHeaderSize + static_cast<uint8_t>(header & kSegmentHeaderLengthMask));
bufPtr = Advance(bufPtr, kSegmentHeaderSize + (header & kSegmentHeaderLengthMask));
}
// Remember the calculated frame length for current frame.
+1 -1
View File
@@ -306,7 +306,7 @@ private:
// Private methods
uint8_t * Next(uint8_t *aBufferPtr) const;
uint8_t * Advance(uint8_t *aBufPtr, uint8_t aOffset) const;
uint8_t * Advance(uint8_t *aBufPtr, uint16_t aOffset) const;
uint16_t GetDistance(uint8_t *aStartPtr, uint8_t *aEndPtr) const;
uint16_t ReadUint16At(uint8_t *aBufPtr);