Limit bytes passed to http.DetectContentType
#10348
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 detecting the content type for a file, Nomad uses the
http.DetectContentType
function, which follows the MIME Sniffing spec. This spec defines a set of steps to be applied to the first 512 bytes of the file.Step 9 is for binary file detection. It looks for a set of predefined byte patterns, one of which is
0x00
.Without limiting the amount of bytes passed to
http.DetectContentType
, a file smaller than 512 bytes would causefileBytes
to end with several0x00
bytes, and so the content-type would be setapplication/octet-stream
, preventing the UI from properly displaying the file.Before:
After: