Fix parsing for object store commands with wrong number of arguments #103
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.
This PR addresses a critical bug related to object store commands, where command invocations with incorrect numbers of arguments can corrupt the command stream by prematurely exiting the parsing loop without fully consuming the RESP command.
Bug Description
Steps to Reproduce
Expected Result
Actual Result
Due to the parsing stream assuming that “y” is the next command name, the subsequent command is incorrectly flagged as unknown.
Changes
To fix this issue, the following changes have been made:
WriteErrorTokenNumberInCommand()
with a new function calledAbortWithWrongNumberOfArguments()
. This new function ensures that any remaining arguments left in the input stream are properly drained before returning the error related to incorrect #arguments.