Fix heap-buffer-overflow issue in redisvFormatCommad #1097
Merged
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.
A command with a faulty formatting string that lacks the conversion specifier (the type) results in a ASAN heap-buffer-overflow.
This was due to that strchr() matches on null-termination, which triggers a continuation of the string parsing.
Fixes #956 which uses formatting string
# %
(0x23,0x20,0x25,0x20) where the flagspace
comes after%
,i.e also a missing type specifier.
The alternative fix in #957 would make the added testcase return a command string (
*1\r\n$0\r\n\r\n
, len=10),but since the same formatting string used in
printf
will also fail I think this is better.