Fix RemoveMessage/AdjustLength incorrectly updating the 2nd byte of the message length ushort #67
+133
−1
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.
Discovered that when removing submessages such that the parent remains large post removal (>=256 bytes), that the 2nd byte of the length ushort in the parent message header is truncated to 0.
This leads to consumers of the message to read a corrupted length, which in turn breaks deserialization in unpredictable ways.
This PR adds two unit tests, which, from the standpoint of before the fix, act as a positive control for the small message case and another that demonstrates the discovered bug.
The PR also fixes the bug, by adjusting the assignment of the aforementioned 2nd byte of the length ushort.