swiftlang/swift
View on GitHub[SR-8706] Fix up parseDependencyFile to not crash on invalid YAML
Open
#51,218 opened on Sep 5, 2018
bugcompilergood first issuelegacy driver
Description
| Previous ID | SR-8706 |
| Radar | rdar://problem/25095498 |
| Original Reporter | @belkadan |
| Type | Bug |
| Votes | 0 |
| Component/s | Compiler |
| Labels | Bug, Driver, StarterBug |
| Assignee | kushaj (JIRA) |
| Priority | Medium |
md5: dfcb979cb9d3bef3f8ec210cda836a79
relates to:
- SR-8707 Write out swiftdeps files atomically
Issue Description:
LLVM's YAML parser returns null when it encounters a malformed node, but parseDependencyFile (in DependencyFile.cpp) isn't checking for this. We should fix this so that a malformed "swiftdeps" file doesn't result in crashes.
This applies to all uses of the LLVM YAML parser, really:
-
OutputFileMap::parsein OutputFileMap.cpp -
populateOutOfDateMapin Driver.cpp -
YamlGroupInputParser in Serialization.cpp already seems to be doing this correctly.
-
APIDiffItemStore and
SILPassPipelinePlan::getPassPipelineFromFiledon't really have to care about malformed input.
Tests for these APIs can go into the unittests/Driver/ folder.