Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current library has a bug that causes the header and tail indicators to overreach into the next buffer. This happens when a nonempty buffer repeatedly receives a sequence of push-pop operations. Each push operation increases the tail and each pop operation increases the head, both without limit.
Here is an exact code to reproduce the problem (assuming a buffer capacity of 4 bytes):
After the above operations (or any number of more push-pop pair of operations), a debugger can be used to inspect that the tail and head indicators have surpassed the maximum index (in this case 3 since the size is 4) of the
data
array in the circular buffer structure.