diff --git a/vm/src/stdlib/os.rs b/vm/src/stdlib/os.rs index 0aa06a8703..721d163187 100644 --- a/vm/src/stdlib/os.rs +++ b/vm/src/stdlib/os.rs @@ -132,7 +132,7 @@ pub fn os_open(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult { fn _set_file_model(flags: &PyObjectRef) -> OpenOptions { let flags = objint::get_value(flags).to_i32().unwrap(); let mut options = OpenOptions::new(); - options.read(flags & libc::O_RDONLY != 0); + options.read(flags == libc::O_RDONLY); options.write(flags & libc::O_WRONLY != 0); options.append(flags & libc::O_APPEND != 0); options.custom_flags(flags); @@ -143,7 +143,7 @@ fn _set_file_model(flags: &PyObjectRef) -> OpenOptions { fn _set_file_model(flags: &PyObjectRef) -> OpenOptions { let flags = objint::get_value(flags).to_u32().unwrap(); let mut options = OpenOptions::new(); - options.read((flags as i32) & libc::O_RDONLY != libc::O_RDONLY); + options.read((flags as i32) == libc::O_RDONLY); options.write((flags as i32) & libc::O_WRONLY != 0); options.append((flags as i32) & libc::O_APPEND != 0); options.custom_flags(flags);