Skip to content

On Windows, null byte added to user from FileManager.default.homeDirectoryForCurrentUser, resulting in infinite looping in DirectoryEnumerator #807

Closed
@ahoppen

Description

@ahoppen
import Foundation

// Prints file:///C:/Users/alex%00/
// Notice the null byte after the user
print(FileManager.default.homeDirectoryForCurrentUser) 

// Same here
print(URL(fileURLWithPath: ("~" as NSString).expandingTildeInPath))

// Prints 
// file:///C:/Users/alex%00/alex/
// file:///C:/Users/alex%00/alex/alex/
// file:///C:/Users/alex%00/alex/alex/alex/
// file:///C:/Users/alex%00/alex/alex/alex/alex/
// file:///C:/Users/alex%00/alex/alex/alex/alex/alex/
// .. continues forever
let enumerator = FileManager.default.enumerator(at: FileManager.default.homeDirectoryForCurrentUser, includingPropertiesForKeys: nil)
while let url = enumerator?.nextObject() as? URL {
  print("\(url)\r\n")
}

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions