Check syntax with unsafe_load / load #44
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.
As we discussed in #43, this changes
check_syntax_valid?
to attempt to process YAML data withunsafe_load
if it is available, orload
otherwise.Unlike
safe_load
, these methods permit processing of valid YAML data that can be problematic if controlled by an adversary. But I argue that yamllint, designed to check files on disk, is processing a type of source code already anyway, so there is already an assumption that no adversary is writing to those files.The technique of using
unsafe_load
and falling back toload
is compatible across Ruby's behavior change in version 3.1, and is borrowed from Rails' approach to this same issue.