Clippy lints / Suspicious
Clippy lint · Suspicious · checked with Clippy 0.1.99
clippy::permissions_set_readonly_false: call to `set_readonly` with argument `false`
What it meansChecks for calls to std::fs::Permissions.set_readonly with argument false. It is in the suspicious group and warns by default.
What you see
warning: call to `set_readonly` with argument `false` --> main.rs:7:1 | 7 | permissions.set_readonly(false); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: on Unix platforms this results in the file being world writable = help: you can set the desired permissions using `PermissionsExt`. For more information, see https://doc.rust-lang.org/std/os/unix/fs/trait.PermissionsExt.html = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#permissions_set_readonly_false = note: `#[warn(clippy::permissions_set_readonly_false)]` on by default
Real output of Clippy 0.1.99 (Rust 1.99) on the example below. Names and line numbers in yours will differ.
Does it matter?
On Unix platforms this results in the file being world writable, equivalent to chmod a+w <file>.
Code that is most likely wrong or useless. Warns by default.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
use std::fs::File;
let f = File::create("foo.txt").unwrap();
let metadata = f.metadata().unwrap();
let mut permissions = metadata.permissions();
permissions.set_readonly(false);
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::permissions_set_readonly_false)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
permissions_set_readonly_false = "allow"One run
cargo clippy -- -A clippy::permissions-set-readonly-falseThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for calls to std::fs::Permissions.set_readonly with argument false.
Why is this bad?
On Unix platforms this results in the file being world writable,
equivalent to chmod a+w <file>.
Example
use std::fs::File;
let f = File::create("foo.txt").unwrap();
let metadata = f.metadata().unwrap();
let mut permissions = metadata.permissions();
permissions.set_readonly(false);
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- non_canonical_partial_ord_implChecks for non-canonical implementations of PartialOrd when Ord is already implemented
- octal_escapesoctal-looking escape in a literal
- path_ends_with_extLooks for calls to Path::ends_with calls where the argument looks like a file extension. By default, Clippy has a short list of known filenames that start with a dot but aren’t necessarily file extensions (e.g
- pointers_in_nomem_asm_blockpassing pointers to nomem asm block
- possible_missing_elsethis looks like an `else {..}` but the `else` is missing
- print_in_format_impluse of `println!` in `Display` impl
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::non_canonical_partial_ord_implChecks for non-canonical implementations of PartialOrd when Ord is already implementedRead it next →Did this answer your question?