parse_root_dir: Verify size of extra obtained #169
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.
Fix the #164 where extra_ptr could be alocated without enough bytes to check the magic value.
Indeed, ZZIP_EXTRA_ZIP64_CHECK, or later in the code, will call ZZIP_GETEXTRA() where it get 2 first bytes to check the magic number.
However, there is not any verification about the size allocated for
extras_ptr
, where by the value ofu_extras
,extras_ptr
could be allocated of 1 byte (what happened with the provided POC in the bug description). We should be sure thatu_extra
allocates theextras_ptr
with more that 2 bytes, or better, at least same value of the size of thezzip_extra_zip64
struct.