This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eryksun
Recipients CristiFati, eryksun, lars.gustaebel, paul.moore, steve.dower, tim.golden, vstinner, zach.ware
Date 2020-10-06.14:27:58
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1601994478.84.0.540287176118.issue36534@roundup.psfhosted.org>
In-reply-to
Content
> The pathlib module has _WindowsFlavour.reserved_names list of 
> Windows reserved names:

pathlib._WindowsFlavour.reserved_names is missing "CONIN$" and "CONOUT$". Prior to Windows 8 these two are reserved as relative names. In Windows 8+, they're also reserved in directories, just like the other reserved device names.

pathlib._WindowsFlavour.is_reserved() fails to reserve names containing ASCII control characters [0-31], vertical bar [|], the file-stream delimiter [:] (i.e. "filename:streamname:streamtype"), and the five wildcard characters [*?"<>]. (Maybe it should allow the file-stream delimiter, but that requires validating that a file stream is proper.) It fails to reserve names that end with a dot or space, which includes UNC and device paths except for \\?\ verbatim paths. It fails to match all reserved base names, which begin with a reserved device name, followed by zero or more spaces, a dot or colon, and zero or more characters. If names that contain colon are already reserved, then this check only has to be modified to strip trailing spaces before comparing against the list of reserved device names.
History
Date User Action Args
2020-10-06 14:27:58eryksunsetrecipients: + eryksun, paul.moore, lars.gustaebel, vstinner, tim.golden, zach.ware, steve.dower, CristiFati
2020-10-06 14:27:58eryksunsetmessageid: <1601994478.84.0.540287176118.issue36534@roundup.psfhosted.org>
2020-10-06 14:27:58eryksunlinkissue36534 messages
2020-10-06 14:27:58eryksuncreate