[2.x cherry-pick] Prevent outbound buffer overwrite during chunking #93
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.
Description
Problem: For large Assurance events, the way the outbound event is being read and converted to a string can cause un-necessary content being appended to the last chunk. This is because the content is read in to a buffer and converted to a string directly irrespective of the actual bytes read. So if the last chunk of data is smaller than the buffer size the remaining part from the buffer could be included.
Solution: As a solution, modify the reading algorithm to store the number of bytes actually read. Then when creating the string use only the portion of the bytes actually read.
Related Issue
#80
Motivation and Context
feature/v-next
was cut before the fix was made. This is a direct cherry-pick from 2.x.Problem: For large Assurance events, the way the outbound event is being read and converted to a string can cause un-necessary content being appended to the last chunk. This is because the content is read in to a buffer and converted to a string directly irrespective of the actual bytes read. So if the last chunk of data is smaller than the buffer size the remaining part from the buffer could be included.
Solution: As a solution, modify the reading algorithm to store the number of bytes actually read. Then when creating the string use only the portion of the bytes actually read.
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: