Fix crash during a MSG_PARSE_AGAIN parse state w/ repairs #715
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.
When read repairs are enabled, we attempt to keep a track of the last
parsed mbuf if the request is large enough to be split across multiple
buffers.
The code would previously update the latest_parsed_mbuf_idx field if the
current token length surpassed (mbuf)->last. This turns out to be incorrect
since we may parse with partial network reads as well.
The fix is to check if mbuf_full() before updating said index. Confirmed its
working with large requests across mbufs and partial network read requests.