Read only first two bytes to check signature #238
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.
When using
stackprofon a large trace (approximately 3.5 GiB), I noted thatstackproffails.This is because
IO.binreadcan only read a max size of 2 GiB (the number of bytes there being equivalent to the max size of a signed 32-bit integer).Since checking the first two bytes should not require reading the whole file, this patch only reads the first two, rewinds, and then (if matching the
MARSHAL_SIGNATURE) usesMarshal.load, which does allow reads over 2 GiB.