[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
String
orURL
. Prevents%00
from being decoded to\0
when 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%00
occurs for file paths ofURL
s 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