Improved stability for mp4 parser when dealing with corrupted FTYP boxes #241
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.
About the issue
Every MP4 file should start with a
ftyp
box. We rely on that to build a check for magic bytes and return early from the parser.The problem arises when a file matches the header of a
ftyp
box but don't actually describe the box correctly -- for instance, bringing a wrong box size. In that case, the box can't be parsed and the file should be discarded.What happens instead is that, due to an issue with the safe navigation, the parser would still try to read from the missing box, resulting in the error
NoMethodError: undefined method
[]' for nil:NilClass`.