From 533a0cb09e2529a058e3dde83094f7eba29b0931 Mon Sep 17 00:00:00 2001 From: Nathaniel Daniel Date: Fri, 1 Nov 2024 11:07:22 -0700 Subject: [PATCH] Add missing reserved file names --- cap-primitives/src/windows/fs/open_impl.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cap-primitives/src/windows/fs/open_impl.rs b/cap-primitives/src/windows/fs/open_impl.rs index 1ba38e66..db595385 100644 --- a/cap-primitives/src/windows/fs/open_impl.rs +++ b/cap-primitives/src/windows/fs/open_impl.rs @@ -10,12 +10,14 @@ pub(crate) fn open_impl( ) -> io::Result { // Windows reserves several special device paths. Disallow opening any // of them. + // See: https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions if let Some(stem) = path.file_stem() { if let Some(stemstr) = stem.to_str() { match stemstr.to_uppercase().as_str() { "CON" | "PRN" | "AUX" | "NUL" | "COM0" | "COM1" | "COM2" | "COM3" | "COM4" - | "COM5" | "COM6" | "COM7" | "COM8" | "COM9" | "LPT0" | "LPT1" | "LPT2" - | "LPT3" | "LPT4" | "LPT5" | "LPT6" | "LPT7" | "LPT8" | "LPT9" => { + | "COM5" | "COM6" | "COM7" | "COM8" | "COM9" | "COM¹" | "COM²" | "COM³" + | "LPT0" | "LPT1" | "LPT2" | "LPT3" | "LPT4" | "LPT5" | "LPT6" | "LPT7" + | "LPT8" | "LPT9" | "LPT¹" | "LPT²" | "LPT³" => { return Err(io::Error::from_raw_os_error(ERROR_FILE_NOT_FOUND as i32)); } _ => {}