RNET-1175 Fix potential outgoing message corruption in managed websockets #3670
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
When managed websockets are enabled we use array pooling to cut down on constant managed heap allocations for the byte arrays that store the sync messages Core wants us to send. However there is a chance that if a rented array is bigger than the buffer we need to store we will attempt to send the entire array, including stale data it contained previously. This is avoided by using the
ArraySegment<T>
constructor that accepts the explicit offset and length parameters.Fixes #3671
TODO