[6.0] Prevent null character in Windows home directory #813
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.
Explanation: Prevents a null-terminator from the Windows home directory API from ending up in the resulting
StringorURL. Prevents%00from being decoded to\0when getting aURL'sfileSystemPath, which is often converted to a C string for file system calls.Scope: Windows-only change from
String(decoding:)toString(decodingCString:)forhomeDirectoryPath(forUser:). Not decoding%00occurs for file paths ofURLs on all platforms.Original PR: #808
Risk: Low. Minor changes to prevent unexpected behavior when null-characters are included in file paths. The respective Windows APIs null-terminate their output, so
String(decodingCString:)is safe.Testing: swift-ci testing and local testing on Windows
Reviewers: @compnerd @jmschonfeld