Open
Description
When trying to open a file (which in this case did not exist) that starts with con. - eg: con.txt, con.toml - fs::read_to_string will hang the thread. File::open will incorrectly succeed, and subsequently panic when methods on the file handle are called.
I tried this code:
use std::fs::File;
use std::{fs};
fn main() {
// 1 - this will hang the app
let _ = fs::read_to_string("con.cxv").unwrap();
// 2 - this returns a file (but it does not exist)
match File::open("con.txt") {
Ok(file) => {
println!("length {}", file.metadata().unwrap().len()) // so this will panic
}
Err(err) => {
println!("{:?}", err);
}
}
}
I expected to see this happen: File not found error returned.
Instead, this happened: Thread hang or incorrect result as per description above.
Meta
Bug exists in nightly as well as stable.
rustc --version --verbose
:
rustc 1.51.0 (2fd73fabe 2021-03-23)
binary: rustc
commit-hash: 2fd73fabe469357a12c2c974c140f67e7cdd76d0
commit-date: 2021-03-23
host: x86_64-pc-windows-msvc
release: 1.51.0
LLVM version: 11.0.1
Backtrace
<backtrace>