fix an out of bound access in keyListResponseWithCorrectSize
#649
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.
Fix #647
The function keyListResponseWithCorrectSize truncate the key list until if fit in
q.serf.config.QueryResponseSizeLimit / minEncodedKeyLength
.The logic in
keyListResponseWithCorrectSize
is flawed, for the special case where the list of keys is smaller then the min required sizeq.serf.config.QueryResponseSizeLimit / minEncodedKeyLength
an out of bound access will happen in hereThe fix proposed in here is to loop through the minimum of the actual key size and
q.serf.config.QueryResponseSizeLimit / minEncodedKeyLength
, this will ensure that:q.serf.config.QueryResponseSizeLimit / minEncodedKeyLength
is smaller then the number of keys the logic is unchangedq.serf.config.QueryResponseSizeLimit / minEncodedKeyLength
we will start with the full list of key and then try to truncate