[INFO] fetching crate sudo-rs 0.2.3... [INFO] checking sudo-rs-0.2.3 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate sudo-rs 0.2.3 into /workspace/builds/worker-1-tc2/source [INFO] validating manifest of crates.io crate sudo-rs 0.2.3 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate sudo-rs 0.2.3 [INFO] finished tweaking crates.io crate sudo-rs 0.2.3 [INFO] tweaked toml for crates.io crate sudo-rs 0.2.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate crates.io crate sudo-rs 0.2.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 37fc3615e3740763e598aa7b70972d336c37cbd69f56d8e16f0b4f7f2fd79039 [INFO] running `Command { std: "docker" "start" "-a" "37fc3615e3740763e598aa7b70972d336c37cbd69f56d8e16f0b4f7f2fd79039", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "37fc3615e3740763e598aa7b70972d336c37cbd69f56d8e16f0b4f7f2fd79039", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37fc3615e3740763e598aa7b70972d336c37cbd69f56d8e16f0b4f7f2fd79039", kill_on_drop: false }` [INFO] [stdout] 37fc3615e3740763e598aa7b70972d336c37cbd69f56d8e16f0b4f7f2fd79039 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8eae764a21fdfc46dc63a850ce8a46d56adbc869ee78fc459490080bb25bc85a [INFO] running `Command { std: "docker" "start" "-a" "8eae764a21fdfc46dc63a850ce8a46d56adbc869ee78fc459490080bb25bc85a", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling sudo-rs v0.2.3 (/tmp/fixit) [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `sudo_rs` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/defaults/settings_dsl.rs [INFO] [stderr] * src/log/mod.rs [INFO] [stderr] * src/su/cli.rs [INFO] [stderr] * src/sudo/cli/mod.rs [INFO] [stderr] * src/sudo/diagnostic.rs [INFO] [stderr] * src/sudoers/basic_parser.rs [INFO] [stderr] * src/system/mod.rs [INFO] [stderr] * src/visudo/mod.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:11:42 [INFO] [stderr] | [INFO] [stderr] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:44:6 [INFO] [stderr] | [INFO] [stderr] 44 | ($fst:expr_2021, $snd:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | ($fst:expr_2021, $snd:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:62:120 [INFO] [stderr] | [INFO] [stderr] 62 | ...ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr_2021})?)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:62:146 [INFO] [stderr] | [INFO] [stderr] 62 | ...teral ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr_2021})?)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:12:42 [INFO] [stderr] | [INFO] [stderr] 12 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:20:42 [INFO] [stderr] | [INFO] [stderr] 20 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/cutils/mod.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 14 | | #[cfg_attr( [INFO] [stdout] 15 | | any(target_os = "macos", target_os = "ios", target_os = "freebsd"), [INFO] [stdout] 16 | | link_name = "__error" [INFO] [stdout] ... | [INFO] [stdout] 23 | | fn errno_location() -> *mut libc::c_int; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:39:42 [INFO] [stderr] | [INFO] [stderr] 39 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:57:42 [INFO] [stderr] | [INFO] [stderr] 57 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:11:60 [INFO] [stdout] | [INFO] [stdout] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr_2021)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr_2021, $snd:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:62:128 [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr)?])? ... [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr})?)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:62:146 [INFO] [stdout] | [INFO] [stdout] 62 | ...st:literal ..= $last:literal$(; radix: $radix: expr)?])? $({$fn: expr})?)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr)?])? $({$fn: expr_2021})?)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:12:50 [INFO] [stdout] | [INFO] [stdout] 12 | ($name:ident is $rule_level:ident to $target:expr, $d:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 12 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:20:50 [INFO] [stdout] | [INFO] [stdout] 20 | ($name:ident is $rule_level:ident to $target:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 20 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:48:43 [INFO] [stderr] | [INFO] [stderr] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:39:50 [INFO] [stdout] | [INFO] [stdout] 39 | ($name:ident is $rule_level:ident to $target:expr, $d:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 39 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:57:50 [INFO] [stdout] | [INFO] [stdout] 57 | ($name:ident is $rule_level:ident to $target:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:51:23 [INFO] [stderr] | [INFO] [stderr] 51 | ($stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | ($($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 52 | | pub fn pam_set_item( [INFO] [stdout] 53 | | pamh: *mut pam_handle_t, [INFO] [stdout] 54 | | item_type: libc::c_int, [INFO] [stdout] 55 | | item: *const libc::c_void, [INFO] [stdout] 56 | | ) -> libc::c_int; [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/su/cli.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/cli/mod.rs:742:10 [INFO] [stderr] | [INFO] [stderr] 742 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/diagnostic.rs:41:6 [INFO] [stderr] | [INFO] [stderr] 41 | ($str:expr_2021, $path:tt @ $pos:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/diagnostic.rs:48:6 [INFO] [stderr] | [INFO] [stderr] 48 | ($str:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 59 | | pub fn pam_get_item( [INFO] [stdout] 60 | | pamh: *const pam_handle_t, [INFO] [stdout] 61 | | item_type: libc::c_int, [INFO] [stdout] 62 | | item: *mut *const libc::c_void, [INFO] [stdout] 63 | | ) -> libc::c_int; [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 66 | | pub fn pam_strerror(pamh: *mut pam_handle_t, errnum: libc::c_int) -> *const libc::c_char; [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 69 | | pub fn pam_getenvlist(pamh: *mut pam_handle_t) -> *mut *mut libc::c_char; [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/visudo/mod.rs:30:6 [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 215 | | pub fn pam_start( [INFO] [stdout] 216 | | service_name: *const libc::c_char, [INFO] [stdout] 217 | | user: *const libc::c_char, [INFO] [stdout] ... | [INFO] [stdout] 220 | | ) -> libc::c_int; [INFO] [stdout] 221 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 223 | | pub fn pam_end(pamh: *mut pam_handle_t, pam_status: libc::c_int) -> libc::c_int; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 30 | ($err:expr_2021, $($tt:tt)*) => { [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:225:1 [INFO] [stdout] | [INFO] [stdout] 225 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 226 | | pub fn pam_authenticate(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 227 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/system/mod.rs:318:26 [INFO] [stderr] | [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:228:1 [INFO] [stdout] | [INFO] [stdout] 228 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 229 | | pub fn pam_setcred(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 230 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { unsafe { [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:231:1 [INFO] [stdout] | [INFO] [stdout] 231 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 232 | | pub fn pam_acct_mgmt(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 233 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 318 | let result = unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 18 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 235 | | pub fn pam_open_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 236 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:237:1 [INFO] [stdout] | [INFO] [stdout] 237 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 238 | | pub fn pam_close_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 239 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:240:1 [INFO] [stdout] | [INFO] [stdout] 240 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 241 | | pub fn pam_chauthtok(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:48:43 [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:51:28 [INFO] [stdout] | [INFO] [stdout] 51 | ($stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 51 | ($stream:ident, $($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | ($($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/su/cli.rs:142:16 [INFO] [stdout] | [INFO] [stdout] 142 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 142 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/cli/mod.rs:742:16 [INFO] [stdout] | [INFO] [stdout] 742 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 742 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/diagnostic.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | ($str:expr, $path:tt @ $pos:ident) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 41 | ($str:expr_2021, $path:tt @ $pos:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/diagnostic.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | ($str:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | ($str:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/visudo/mod.rs:30:11 [INFO] [stdout] | [INFO] [stdout] 30 | ($err:expr, $($tt:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 30 | ($err:expr_2021, $($tt:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:343:35 [INFO] [stdout] | [INFO] [stdout] 343 | name: SudoString::new(string_from_ptr(pwd.pw_name))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | gecos: string_from_ptr(pwd.pw_gecos), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:345:33 [INFO] [stdout] | [INFO] [stdout] 345 | home: SudoPath::new(os_string_from_ptr(pwd.pw_dir).into())?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:346:20 [INFO] [stdout] | [INFO] [stdout] 346 | shell: os_string_from_ptr(pwd.pw_shell).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:347:21 [INFO] [stdout] | [INFO] [stdout] 347 | passwd: string_from_ptr(pwd.pw_passwd), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:433:19 [INFO] [stdout] | [INFO] [stdout] 433 | name: string_from_ptr(grp.gr_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | unsafe fn from_libc(grp: &libc::group) -> Group { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/event.rs:234:24 [INFO] [stdout] | [INFO] [stdout] 234 | if let Some(reason) = self.status.take_exit() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/event.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 234 ~ match self.status.take_exit() { Some(reason) => { [INFO] [stdout] 235 | return StopReason::Exit(reason); [INFO] [stdout] 236 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/event.rs:240:16 [INFO] [stdout] | [INFO] [stdout] 240 | if let Some(reason) = self.status.take_stop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/event.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 240 ~ match self.status.take_stop() { Some(reason) => { [INFO] [stdout] 241 | return reason; [INFO] [stdout] 242 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 62 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 63 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 64 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 87 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 88 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 89 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:155:16 [INFO] [stdout] | [INFO] [stdout] 155 | if let Ok(signaler_pgrp) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 155 ~ match getpgid(signaler_pid) { Ok(signaler_pgrp) => { [INFO] [stdout] 156 | if Some(signaler_pgrp) == self.command_pid || signaler_pgrp == self.sudo_pid { [INFO] [stdout] 157 | return true; [INFO] [stdout] 158 | } [INFO] [stdout] 159 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:171:16 [INFO] [stdout] | [INFO] [stdout] 171 | if let Ok(saved_pgrp) = tty.tcgetpgrp() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 171 ~ match tty.tcgetpgrp() { Ok(saved_pgrp) => { [INFO] [stdout] 172 | // Save the terminal's foreground process group so we can restore it after resuming [INFO] [stdout] 173 | // if needed. [INFO] [stdout] 174 | opt_pgrp = Some(saved_pgrp); [INFO] [stdout] 175 ~ } _ => { [INFO] [stdout] 176 | opt_tty.take(); [INFO] [stdout] 177 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:224:20 [INFO] [stdout] | [INFO] [stdout] 224 | if let Some(tty) = opt_tty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:226:17 [INFO] [stdout] | [INFO] [stdout] 226 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 224 ~ match opt_tty { Some(tty) => { [INFO] [stdout] 225 | tty.tcsetpgrp_nobg(saved_pgrp).ok(); [INFO] [stdout] 226 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 125 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 126 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 127 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | if let Err(err) = closure.pty_follower.tcsetpgrp(closure.command_pgrp) { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 132 ~ match closure.pty_follower.tcsetpgrp(closure.command_pgrp) { Err(err) => { [INFO] [stdout] 133 | dev_error!( [INFO] [stdout] ... [INFO] [stdout] 136 | ); [INFO] [stdout] 137 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | if let Err(err) = closure.backchannel.send(&msg) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 172 ~ match closure.backchannel.send(&msg) { Err(err) => { [INFO] [stdout] 173 | dev_warn!("cannot send message over backchannel: {err}") [INFO] [stdout] 174 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:181:16 [INFO] [stdout] | [INFO] [stdout] 181 | if let Err(err) = closure.backchannel.send(&command_status.into()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 183 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 181 ~ match closure.backchannel.send(&command_status.into()) { Err(err) => { [INFO] [stdout] 182 | dev_warn!("cannot send message over backchannel: {err}") [INFO] [stdout] 183 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 222 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 223 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 224 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:421:12 [INFO] [stdout] | [INFO] [stdout] 421 | if let Ok(grp_leader) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 421 ~ match getpgid(signaler_pid) { Ok(grp_leader) => { [INFO] [stdout] 422 | if grp_leader == command_pgrp { [INFO] [stdout] 423 | return true; [INFO] [stdout] 424 | } [INFO] [stdout] 425 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:190:28 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(err) = backchannels.monitor.send(&msg) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 190 ~ match backchannels.monitor.send(&msg) { Err(err) => { [INFO] [stdout] 191 | dev_error!("cannot send status to parent: {err}"); [INFO] [stdout] 192 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 231 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | if let Ok(pgrp) = closure.tty_pipe.left().tcgetpgrp() { [INFO] [stdout] | ^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 244 ~ match closure.tty_pipe.left().tcgetpgrp() { Ok(pgrp) => { [INFO] [stdout] 245 | if pgrp == closure.parent_pgrp { [INFO] [stdout] ... [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:440:16 [INFO] [stdout] | [INFO] [stdout] 440 | if let Ok(signaler_pgrp) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 440 ~ match getpgid(signaler_pid) { Ok(signaler_pgrp) => { [INFO] [stdout] 441 | if Some(signaler_pgrp) == self.command_pid || signaler_pgrp == self.sudo_pid { [INFO] [stdout] 442 | return true; [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:637:20 [INFO] [stdout] | [INFO] [stdout] 637 | if let Err(err) = self.handle_sigwinch() { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:639:17 [INFO] [stdout] | [INFO] [stdout] 639 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 637 ~ match self.handle_sigwinch() { Err(err) => { [INFO] [stdout] 638 | dev_warn!("cannot resize terminal: {}", err); [INFO] [stdout] 639 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/pam/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if let (Some(converser), Some(service_name)) = (self.converser, self.service_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/pam/mod.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match (self.converser, self.service_name) { (Some(converser), Some(service_name)) => { [INFO] [stdout] 46 | let c_service_name = CString::new(service_name)?; [INFO] [stdout] ... [INFO] [stdout] 85 | } [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | Err(PamError::InvalidState) [INFO] [stdout] 88 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/pam/converse.rs:249:16 [INFO] [stdout] | [INFO] [stdout] 249 | if let Some(secbuf) = msg.response { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/pam/converse.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 249 ~ match msg.response { Some(secbuf) => { [INFO] [stdout] 250 | response.resp = secbuf.leak().as_ptr().cast(); [INFO] [stdout] 251 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, (ast::Tag, &'a ast::Qualified>)>>))> + 'b` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/sudoers/mod.rs:150:31 [INFO] [stdout] | [INFO] [stdout] 150 | ) -> impl Iterator, (Tag, &'a Spec))> + 'b> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/sudoers/mod.rs:146:49 [INFO] [stdout] | [INFO] [stdout] 146 | fn matching_user_specs<'a: 'b + 'c, 'b: 'c, 'c, User: UnixUser + PartialEq>( [INFO] [stdout] | ^^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 150 | ) -> impl Iterator, (Tag, &'a Spec))> + 'b + use<'a, 'b, User>> [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:372:15 [INFO] [stdout] | [INFO] [stdout] 372 | while let Some(MetaOrTag(keyword)) = try_nonterminal(stream)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:506:16 [INFO] [stdout] | [INFO] [stdout] 506 | if let Some(directive) = maybe(get_directive(key, stream))? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:511:13 [INFO] [stdout] | [INFO] [stdout] 511 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 506 ~ match maybe(get_directive(key, stream))? { Some(directive) => { [INFO] [stdout] 507 | if users.len() != 1 { [INFO] [stdout] ... [INFO] [stdout] 510 | make(Sudo::Decl(directive)) [INFO] [stdout] 511 ~ } _ => { [INFO] [stdout] 512 | let permissions = expect_nonterminal(stream)?; [INFO] [stdout] 513 | make(Sudo::Spec(PermissionSpec { users, permissions })) [INFO] [stdout] 514 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/interface.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if let Ok(Some(group)) = super::Group::from_name(name_c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/interface.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match super::Group::from_name(name_c) { Ok(Some(group)) => { [INFO] [stdout] 46 | self.in_group_by_gid(group.gid) [INFO] [stdout] 47 ~ } _ => { [INFO] [stdout] 48 | false [INFO] [stdout] 49 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:224:15 [INFO] [stdout] | [INFO] [stdout] 224 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:411:12 [INFO] [stdout] | [INFO] [stdout] 411 | if let Ok(Some(tty_device)) = tty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:422:9 [INFO] [stdout] | [INFO] [stdout] 422 | } else if let Some(parent_pid) = process.parent_pid { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 411 ~ match tty { Ok(Some(tty_device)) => { [INFO] [stdout] 412 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(process.session_id)) { [INFO] [stdout] ... [INFO] [stdout] 421 | } [INFO] [stdout] 422 ~ } _ => if let Some(parent_pid) = process.parent_pid { [INFO] [stdout] 423 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(parent_pid)) { [INFO] [stdout] ... [INFO] [stdout] 433 | None [INFO] [stdout] 434 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:412:16 [INFO] [stdout] | [INFO] [stdout] 412 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(process.session_id)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 412 ~ match Process::starting_time(WithProcess::Other(process.session_id)) { Ok(init_time) => { [INFO] [stdout] 413 | Some(RecordScope::Tty { [INFO] [stdout] ... [INFO] [stdout] 417 | }) [INFO] [stdout] 418 ~ } _ => { [INFO] [stdout] 419 | auth_warn!("Could not get terminal foreground process starting time"); [INFO] [stdout] 420 | None [INFO] [stdout] 421 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:423:16 [INFO] [stdout] | [INFO] [stdout] 423 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(parent_pid)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 423 ~ match Process::starting_time(WithProcess::Other(parent_pid)) { Ok(init_time) => { [INFO] [stdout] 424 | Some(RecordScope::Ppid { [INFO] [stdout] ... [INFO] [stdout] 427 | }) [INFO] [stdout] 428 ~ } _ => { [INFO] [stdout] 429 | auth_warn!("Could not get parent process starting time"); [INFO] [stdout] 430 | None [INFO] [stdout] 431 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/signal/handler.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | if let Err(err) = self.original_action.register(signal) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/signal/handler.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 56 ~ match self.original_action.register(signal) { Err(err) => { [INFO] [stdout] 57 | dev_warn!( [INFO] [stdout] ... [INFO] [stdout] 60 | ) [INFO] [stdout] 61 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/signal/stream.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if let Some(tx) = STREAM.get().map(|stream| stream.tx.as_raw_fd()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/signal/stream.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match STREAM.get().map(|stream| stream.tx.as_raw_fd()) { Some(tx) => { [INFO] [stdout] 27 | unsafe { libc::send(tx, info.cast(), SignalInfo::SIZE, libc::MSG_DONTWAIT) }; [INFO] [stdout] 28 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/su/cli.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | while let Some(arg) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/su/cli.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/su/context.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | if let Ok(contents) = fs::read_to_string(VALID_LOGIN_SHELLS_LIST) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/su/context.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 38 ~ match fs::read_to_string(VALID_LOGIN_SHELLS_LIST) { Ok(contents) => { [INFO] [stdout] 39 | return !contents.lines().any(|l| l == pattern); [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | return FALLBACK_LOGIN_SHELL != pattern; [INFO] [stdout] 42 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:497:15 [INFO] [stdout] | [INFO] [stdout] 497 | while let Some(arg) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 558 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:512:24 [INFO] [stdout] | [INFO] [stdout] 512 | if let Some(next) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:514:21 [INFO] [stdout] | [INFO] [stdout] 514 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 512 ~ match arg_iter.next() { Some(next) => { [INFO] [stdout] 513 | processed.push(SudoArg::Argument(arg, next)); [INFO] [stdout] 514 ~ } _ => { [INFO] [stdout] 515 | Err(format!("'{}' expects an argument", &arg))?; [INFO] [stdout] 516 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:537:35 [INFO] [stdout] | [INFO] [stdout] 537 | } else if let Some(next) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:539:25 [INFO] [stdout] | [INFO] [stdout] 539 | } else if curr == 'h' { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 537 ~ } else { match arg_iter.next() { Some(next) => { [INFO] [stdout] 538 | processed.push(SudoArg::Argument(flag, next)); [INFO] [stdout] 539 ~ } _ => if curr == 'h' { [INFO] [stdout] 540 | // short version of --help has no arguments [INFO] [stdout] ... [INFO] [stdout] 543 | Err(format!("'-{}' expects an argument", curr))?; [INFO] [stdout] 544 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pam.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if let Err(e) = pam.credentials_reinitialize() { [INFO] [stdout] | ^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pam.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 79 ~ match pam.credentials_reinitialize() { Err(e) => { [INFO] [stdout] 80 | dev_info!( [INFO] [stdout] ... [INFO] [stdout] 83 | ); [INFO] [stdout] 84 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | if let (Some(record_file), Some(scope)) = (&mut auth_status.record_file, scope) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 156 ~ match (&mut auth_status.record_file, scope) { (Some(record_file), Some(scope)) => { [INFO] [stdout] 157 | match record_file.create(scope, context.current_user.uid) { [INFO] [stdout] ... [INFO] [stdout] 162 | } [INFO] [stdout] 163 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:266:23 [INFO] [stdout] | [INFO] [stdout] 266 | let tty_info = if let Ok(tty_name) = current_tty_name() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 266 ~ let tty_info = match current_tty_name() { Ok(tty_name) => { [INFO] [stdout] 267 | format!("TTY={} ;", escape_os_str_lossy(&tty_name)) [INFO] [stdout] 268 ~ } _ => { [INFO] [stdout] 269 | String::from("") [INFO] [stdout] 270 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline/list.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | if let Authorization::Forbidden = judgement.authorization() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline/list.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 164 ~ match judgement.authorization() { Authorization::Forbidden => { [INFO] [stdout] 165 | return Err(Error::Silent); [INFO] [stdout] 166 ~ } _ => { [INFO] [stdout] 167 | let command_is_relative_path = [INFO] [stdout] ... [INFO] [stdout] 180 | } [INFO] [stdout] 181 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 78 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Migrating bin/visudo.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `sudo_rs` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/defaults/settings_dsl.rs [INFO] [stderr] * src/log/mod.rs [INFO] [stderr] * src/su/cli.rs [INFO] [stderr] * src/sudo/cli/mod.rs [INFO] [stderr] * src/sudo/diagnostic.rs [INFO] [stderr] * src/sudoers/basic_parser.rs [INFO] [stderr] * src/sudoers/test/mod.rs [INFO] [stderr] * src/system/mod.rs [INFO] [stderr] * src/visudo/mod.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:11:42 [INFO] [stderr] | [INFO] [stderr] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:44:6 [INFO] [stderr] | [INFO] [stderr] 44 | ($fst:expr_2021, $snd:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | ($fst:expr_2021, $snd:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:62:120 [INFO] [stderr] | [INFO] [stderr] 62 | ...ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr_2021})?)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/defaults/settings_dsl.rs:62:146 [INFO] [stderr] | [INFO] [stderr] 62 | ...teral ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr_2021})?)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:12:42 [INFO] [stderr] | [INFO] [stderr] 12 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:20:42 [INFO] [stderr] | [INFO] [stderr] 20 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:39:42 [INFO] [stderr] | [INFO] [stderr] 39 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/log/mod.rs:57:42 [INFO] [stderr] | [INFO] [stderr] 57 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:48:43 [INFO] [stderr] | [INFO] [stderr] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:51:23 [INFO] [stderr] | [INFO] [stderr] 51 | ($stream:ident, $($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/basic_parser.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | ($($str:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:59:8 [INFO] [stderr] | [INFO] [stderr] 59 | ($($e:expr_2021),*) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/su/cli.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/cli/mod.rs:742:10 [INFO] [stderr] | [INFO] [stderr] 742 | ($expr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/diagnostic.rs:41:6 [INFO] [stderr] | [INFO] [stderr] 41 | ($str:expr_2021, $path:tt @ $pos:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudo/diagnostic.rs:48:6 [INFO] [stderr] | [INFO] [stderr] 48 | ($str:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/visudo/mod.rs:30:6 [INFO] [stderr] | [INFO] [stderr] 30 | ($err:expr_2021, $($tt:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:93:34 [INFO] [stderr] | [INFO] [stderr] 93 | ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:93:53 [INFO] [stderr] | [INFO] [stderr] 93 | ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:93:69 [INFO] [stderr] | [INFO] [stderr] 93 | ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:93:88 [INFO] [stderr] | [INFO] [stderr] 93 | ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | ... ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_20... [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:34 [INFO] [stderr] | [INFO] [stderr] 102 | ... ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_20... [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:53 [INFO] [stderr] | [INFO] [stderr] 102 | ... ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_20... [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:69 [INFO] [stderr] | [INFO] [stderr] 102 | ... ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_20... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:88 [INFO] [stderr] | [INFO] [stderr] 102 | ... ([$($sudo:expr_2021),*], $user:expr_2021 => $req:expr_2021, $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_20... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:102:128 [INFO] [stderr] | [INFO] [stderr] 102 | ... $server:expr_2021; $command:expr_2021 $(=> [$($key:ident : $val:expr_2021),*])?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/sudoers/test/mod.rs:115:11 [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/cutils/mod.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 14 | | #[cfg_attr( [INFO] [stdout] 15 | | any(target_os = "macos", target_os = "ios", target_os = "freebsd"), [INFO] [stdout] 16 | | link_name = "__error" [INFO] [stdout] ... | [INFO] [stdout] 23 | | fn errno_location() -> *mut libc::c_int; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:11:60 [INFO] [stdout] | [INFO] [stdout] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 11 | ($ctor:ident, $type:ty, negatable$(, $vetting_function:expr_2021)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 115 | ([$sudo:expr_2021]) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr_2021, $snd:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 44 | ($fst:expr, $snd:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:62:128 [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr)?])? ... [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr_2021)?])? $({$fn: expr})?)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/defaults/settings_dsl.rs:62:146 [INFO] [stdout] | [INFO] [stdout] 62 | ...st:literal ..= $last:literal$(; radix: $radix: expr)?])? $({$fn: expr})?)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($($name:ident = $value:tt $((!= $negate:tt))? $([$($key:ident),*])? $([$first:literal ..= $last:literal$(; radix: $radix: expr)?])? $({$fn: expr_2021})?)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:12:50 [INFO] [stdout] | [INFO] [stdout] 12 | ($name:ident is $rule_level:ident to $target:expr, $d:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 12 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:20:50 [INFO] [stdout] | [INFO] [stdout] 20 | ($name:ident is $rule_level:ident to $target:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 20 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:39:50 [INFO] [stdout] | [INFO] [stdout] 39 | ($name:ident is $rule_level:ident to $target:expr, $d:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 39 | ($name:ident is $rule_level:ident to $target:expr_2021, $d:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:57:50 [INFO] [stdout] | [INFO] [stdout] 57 | ($name:ident is $rule_level:ident to $target:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($name:ident is $rule_level:ident to $target:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/system/mod.rs:318:26 [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 52 | | pub fn pam_set_item( [INFO] [stdout] 53 | | pamh: *mut pam_handle_t, [INFO] [stdout] 54 | | item_type: libc::c_int, [INFO] [stdout] 55 | | item: *const libc::c_void, [INFO] [stdout] 56 | | ) -> libc::c_int; [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 59 | | pub fn pam_get_item( [INFO] [stdout] 60 | | pamh: *const pam_handle_t, [INFO] [stdout] 61 | | item_type: libc::c_int, [INFO] [stdout] 62 | | item: *mut *const libc::c_void, [INFO] [stdout] 63 | | ) -> libc::c_int; [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 318 | let result = unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 31 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 66 | | pub fn pam_strerror(pamh: *mut pam_handle_t, errnum: libc::c_int) -> *const libc::c_char; [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 69 | | pub fn pam_getenvlist(pamh: *mut pam_handle_t) -> *mut *mut libc::c_char; [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 215 | | pub fn pam_start( [INFO] [stdout] 216 | | service_name: *const libc::c_char, [INFO] [stdout] 217 | | user: *const libc::c_char, [INFO] [stdout] ... | [INFO] [stdout] 220 | | ) -> libc::c_int; [INFO] [stdout] 221 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 223 | | pub fn pam_end(pamh: *mut pam_handle_t, pam_status: libc::c_int) -> libc::c_int; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:225:1 [INFO] [stdout] | [INFO] [stdout] 225 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 226 | | pub fn pam_authenticate(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 227 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:228:1 [INFO] [stdout] | [INFO] [stdout] 228 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 229 | | pub fn pam_setcred(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 230 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:231:1 [INFO] [stdout] | [INFO] [stdout] 231 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 232 | | pub fn pam_acct_mgmt(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 233 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 235 | | pub fn pam_open_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 236 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:237:1 [INFO] [stdout] | [INFO] [stdout] 237 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 238 | | pub fn pam_close_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 239 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/pam/sys.rs:240:1 [INFO] [stdout] | [INFO] [stdout] 240 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 241 | | pub fn pam_chauthtok(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr_2021, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:48:43 [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | (pos=$pos:expr, $stream:ident, $($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:51:28 [INFO] [stdout] | [INFO] [stdout] 51 | ($stream:ident, $($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 51 | ($stream:ident, $($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/basic_parser.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | ($($str:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($($str:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | ($($e:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 59 | ($($e:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:93:19 [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr_2021),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:93:35 [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr_2021 => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:93:48 [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr_2021, $server:expr; $command:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:93:62 [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr_2021; $command:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:93:77 [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 93 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr_2021),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:35 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr_2021 => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:48 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr_2021, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:62 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr_2021; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:77 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr_2021 $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:102:108 [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr),*])?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ([$($sudo:expr),*], $user:expr => $req:expr, $server:expr; $command:expr $(=> [$($key:ident : $val:expr_2021),*])?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudoers/test/mod.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | ([$sudo:expr]) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 115 | ([$sudo:expr_2021]) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/su/cli.rs:142:16 [INFO] [stdout] | [INFO] [stdout] 142 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 142 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/cli/mod.rs:742:16 [INFO] [stdout] | [INFO] [stdout] 742 | ($expr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 742 | ($expr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/diagnostic.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | ($str:expr, $path:tt @ $pos:ident) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 41 | ($str:expr_2021, $path:tt @ $pos:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/sudo/diagnostic.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | ($str:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | ($str:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/visudo/mod.rs:30:11 [INFO] [stdout] | [INFO] [stdout] 30 | ($err:expr, $($tt:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 30 | ($err:expr_2021, $($tt:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:343:35 [INFO] [stdout] | [INFO] [stdout] 343 | name: SudoString::new(string_from_ptr(pwd.pw_name))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | gecos: string_from_ptr(pwd.pw_gecos), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:345:33 [INFO] [stdout] | [INFO] [stdout] 345 | home: SudoPath::new(os_string_from_ptr(pwd.pw_dir).into())?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:346:20 [INFO] [stdout] | [INFO] [stdout] 346 | shell: os_string_from_ptr(pwd.pw_shell).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:347:21 [INFO] [stdout] | [INFO] [stdout] 347 | passwd: string_from_ptr(pwd.pw_passwd), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:433:19 [INFO] [stdout] | [INFO] [stdout] 433 | name: string_from_ptr(grp.gr_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | unsafe fn from_libc(grp: &libc::group) -> Group { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/event.rs:234:24 [INFO] [stdout] | [INFO] [stdout] 234 | if let Some(reason) = self.status.take_exit() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/event.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 234 ~ match self.status.take_exit() { Some(reason) => { [INFO] [stdout] 235 | return StopReason::Exit(reason); [INFO] [stdout] 236 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/event.rs:240:16 [INFO] [stdout] | [INFO] [stdout] 240 | if let Some(reason) = self.status.take_stop() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/event.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 240 ~ match self.status.take_stop() { Some(reason) => { [INFO] [stdout] 241 | return reason; [INFO] [stdout] 242 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 62 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 63 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 64 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 87 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 88 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 89 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:155:16 [INFO] [stdout] | [INFO] [stdout] 155 | if let Ok(signaler_pgrp) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 155 ~ match getpgid(signaler_pid) { Ok(signaler_pgrp) => { [INFO] [stdout] 156 | if Some(signaler_pgrp) == self.command_pid || signaler_pgrp == self.sudo_pid { [INFO] [stdout] 157 | return true; [INFO] [stdout] 158 | } [INFO] [stdout] 159 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:171:16 [INFO] [stdout] | [INFO] [stdout] 171 | if let Ok(saved_pgrp) = tty.tcgetpgrp() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 171 ~ match tty.tcgetpgrp() { Ok(saved_pgrp) => { [INFO] [stdout] 172 | // Save the terminal's foreground process group so we can restore it after resuming [INFO] [stdout] 173 | // if needed. [INFO] [stdout] 174 | opt_pgrp = Some(saved_pgrp); [INFO] [stdout] 175 ~ } _ => { [INFO] [stdout] 176 | opt_tty.take(); [INFO] [stdout] 177 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:224:20 [INFO] [stdout] | [INFO] [stdout] 224 | if let Some(tty) = opt_tty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/no_pty.rs:226:17 [INFO] [stdout] | [INFO] [stdout] 226 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 224 ~ match opt_tty { Some(tty) => { [INFO] [stdout] 225 | tty.tcsetpgrp_nobg(saved_pgrp).ok(); [INFO] [stdout] 226 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 125 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 126 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 127 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | if let Err(err) = closure.pty_follower.tcsetpgrp(closure.command_pgrp) { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 132 ~ match closure.pty_follower.tcsetpgrp(closure.command_pgrp) { Err(err) => { [INFO] [stdout] 133 | dev_error!( [INFO] [stdout] ... [INFO] [stdout] 136 | ); [INFO] [stdout] 137 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | if let Err(err) = closure.backchannel.send(&msg) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 172 ~ match closure.backchannel.send(&msg) { Err(err) => { [INFO] [stdout] 173 | dev_warn!("cannot send message over backchannel: {err}") [INFO] [stdout] 174 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:181:16 [INFO] [stdout] | [INFO] [stdout] 181 | if let Err(err) = closure.backchannel.send(&command_status.into()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 183 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 181 ~ match closure.backchannel.send(&command_status.into()) { Err(err) => { [INFO] [stdout] 182 | dev_warn!("cannot send message over backchannel: {err}") [INFO] [stdout] 183 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 222 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 223 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 224 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:421:12 [INFO] [stdout] | [INFO] [stdout] 421 | if let Ok(grp_leader) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/monitor.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 421 ~ match getpgid(signaler_pid) { Ok(grp_leader) => { [INFO] [stdout] 422 | if grp_leader == command_pgrp { [INFO] [stdout] 423 | return true; [INFO] [stdout] 424 | } [INFO] [stdout] 425 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:190:28 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(err) = backchannels.monitor.send(&msg) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 190 ~ match backchannels.monitor.send(&msg) { Err(err) => { [INFO] [stdout] 191 | dev_error!("cannot send status to parent: {err}"); [INFO] [stdout] 192 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if let Err(err) = set.set_mask() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match set.set_mask() { Err(err) => { [INFO] [stdout] 231 | dev_warn!("cannot restore signal mask: {err}"); [INFO] [stdout] 232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | if let Ok(pgrp) = closure.tty_pipe.left().tcgetpgrp() { [INFO] [stdout] | ^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 244 ~ match closure.tty_pipe.left().tcgetpgrp() { Ok(pgrp) => { [INFO] [stdout] 245 | if pgrp == closure.parent_pgrp { [INFO] [stdout] ... [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:440:16 [INFO] [stdout] | [INFO] [stdout] 440 | if let Ok(signaler_pgrp) = getpgid(signaler_pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:444:13 [INFO] [stdout] | [INFO] [stdout] 444 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 440 ~ match getpgid(signaler_pid) { Ok(signaler_pgrp) => { [INFO] [stdout] 441 | if Some(signaler_pgrp) == self.command_pid || signaler_pgrp == self.sudo_pid { [INFO] [stdout] 442 | return true; [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:637:20 [INFO] [stdout] | [INFO] [stdout] 637 | if let Err(err) = self.handle_sigwinch() { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/exec/use_pty/parent.rs:639:17 [INFO] [stdout] | [INFO] [stdout] 639 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 637 ~ match self.handle_sigwinch() { Err(err) => { [INFO] [stdout] 638 | dev_warn!("cannot resize terminal: {}", err); [INFO] [stdout] 639 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/pam/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if let (Some(converser), Some(service_name)) = (self.converser, self.service_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/pam/mod.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match (self.converser, self.service_name) { (Some(converser), Some(service_name)) => { [INFO] [stdout] 46 | let c_service_name = CString::new(service_name)?; [INFO] [stdout] ... [INFO] [stdout] 85 | } [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | Err(PamError::InvalidState) [INFO] [stdout] 88 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/pam/converse.rs:249:16 [INFO] [stdout] | [INFO] [stdout] 249 | if let Some(secbuf) = msg.response { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/pam/converse.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 251 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 249 ~ match msg.response { Some(secbuf) => { [INFO] [stdout] 250 | response.resp = secbuf.leak().as_ptr().cast(); [INFO] [stdout] 251 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, (ast::Tag, &'a ast::Qualified>)>>))> + 'b` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/sudoers/mod.rs:150:31 [INFO] [stdout] | [INFO] [stdout] 150 | ) -> impl Iterator, (Tag, &'a Spec))> + 'b> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/sudoers/mod.rs:146:49 [INFO] [stdout] | [INFO] [stdout] 146 | fn matching_user_specs<'a: 'b + 'c, 'b: 'c, 'c, User: UnixUser + PartialEq>( [INFO] [stdout] | ^^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 150 | ) -> impl Iterator, (Tag, &'a Spec))> + 'b + use<'a, 'b, User>> [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:372:15 [INFO] [stdout] | [INFO] [stdout] 372 | while let Some(MetaOrTag(keyword)) = try_nonterminal(stream)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:506:16 [INFO] [stdout] | [INFO] [stdout] 506 | if let Some(directive) = maybe(get_directive(key, stream))? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudoers/ast.rs:511:13 [INFO] [stdout] | [INFO] [stdout] 511 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 506 ~ match maybe(get_directive(key, stream))? { Some(directive) => { [INFO] [stdout] 507 | if users.len() != 1 { [INFO] [stdout] ... [INFO] [stdout] 510 | make(Sudo::Decl(directive)) [INFO] [stdout] 511 ~ } _ => { [INFO] [stdout] 512 | let permissions = expect_nonterminal(stream)?; [INFO] [stdout] 513 | make(Sudo::Spec(PermissionSpec { users, permissions })) [INFO] [stdout] 514 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/interface.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if let Ok(Some(group)) = super::Group::from_name(name_c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/interface.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match super::Group::from_name(name_c) { Ok(Some(group)) => { [INFO] [stdout] 46 | self.in_group_by_gid(group.gid) [INFO] [stdout] 47 ~ } _ => { [INFO] [stdout] 48 | false [INFO] [stdout] 49 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:224:15 [INFO] [stdout] | [INFO] [stdout] 224 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:244:15 [INFO] [stdout] | [INFO] [stdout] 244 | while let Some(record) = self.next_record()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:411:12 [INFO] [stdout] | [INFO] [stdout] 411 | if let Ok(Some(tty_device)) = tty { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:422:9 [INFO] [stdout] | [INFO] [stdout] 422 | } else if let Some(parent_pid) = process.parent_pid { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 411 ~ match tty { Ok(Some(tty_device)) => { [INFO] [stdout] 412 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(process.session_id)) { [INFO] [stdout] ... [INFO] [stdout] 421 | } [INFO] [stdout] 422 ~ } _ => if let Some(parent_pid) = process.parent_pid { [INFO] [stdout] 423 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(parent_pid)) { [INFO] [stdout] ... [INFO] [stdout] 433 | None [INFO] [stdout] 434 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:412:16 [INFO] [stdout] | [INFO] [stdout] 412 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(process.session_id)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 412 ~ match Process::starting_time(WithProcess::Other(process.session_id)) { Ok(init_time) => { [INFO] [stdout] 413 | Some(RecordScope::Tty { [INFO] [stdout] ... [INFO] [stdout] 417 | }) [INFO] [stdout] 418 ~ } _ => { [INFO] [stdout] 419 | auth_warn!("Could not get terminal foreground process starting time"); [INFO] [stdout] 420 | None [INFO] [stdout] 421 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:423:16 [INFO] [stdout] | [INFO] [stdout] 423 | if let Ok(init_time) = Process::starting_time(WithProcess::Other(parent_pid)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/timestamp.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 423 ~ match Process::starting_time(WithProcess::Other(parent_pid)) { Ok(init_time) => { [INFO] [stdout] 424 | Some(RecordScope::Ppid { [INFO] [stdout] ... [INFO] [stdout] 427 | }) [INFO] [stdout] 428 ~ } _ => { [INFO] [stdout] 429 | auth_warn!("Could not get parent process starting time"); [INFO] [stdout] 430 | None [INFO] [stdout] 431 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/signal/handler.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | if let Err(err) = self.original_action.register(signal) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/signal/handler.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 56 ~ match self.original_action.register(signal) { Err(err) => { [INFO] [stdout] 57 | dev_warn!( [INFO] [stdout] ... [INFO] [stdout] 60 | ) [INFO] [stdout] 61 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/system/signal/stream.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if let Some(tx) = STREAM.get().map(|stream| stream.tx.as_raw_fd()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/system/signal/stream.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match STREAM.get().map(|stream| stream.tx.as_raw_fd()) { Some(tx) => { [INFO] [stdout] 27 | unsafe { libc::send(tx, info.cast(), SignalInfo::SIZE, libc::MSG_DONTWAIT) }; [INFO] [stdout] 28 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/su/cli.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | while let Some(arg) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/su/cli.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/su/context.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | if let Ok(contents) = fs::read_to_string(VALID_LOGIN_SHELLS_LIST) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/su/context.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 38 ~ match fs::read_to_string(VALID_LOGIN_SHELLS_LIST) { Ok(contents) => { [INFO] [stdout] 39 | return !contents.lines().any(|l| l == pattern); [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | return FALLBACK_LOGIN_SHELL != pattern; [INFO] [stdout] 42 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:497:15 [INFO] [stdout] | [INFO] [stdout] 497 | while let Some(arg) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 558 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:512:24 [INFO] [stdout] | [INFO] [stdout] 512 | if let Some(next) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:514:21 [INFO] [stdout] | [INFO] [stdout] 514 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 512 ~ match arg_iter.next() { Some(next) => { [INFO] [stdout] 513 | processed.push(SudoArg::Argument(arg, next)); [INFO] [stdout] 514 ~ } _ => { [INFO] [stdout] 515 | Err(format!("'{}' expects an argument", &arg))?; [INFO] [stdout] 516 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:537:35 [INFO] [stdout] | [INFO] [stdout] 537 | } else if let Some(next) = arg_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/cli/mod.rs:539:25 [INFO] [stdout] | [INFO] [stdout] 539 | } else if curr == 'h' { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 537 ~ } else { match arg_iter.next() { Some(next) => { [INFO] [stdout] 538 | processed.push(SudoArg::Argument(flag, next)); [INFO] [stdout] 539 ~ } _ => if curr == 'h' { [INFO] [stdout] 540 | // short version of --help has no arguments [INFO] [stdout] ... [INFO] [stdout] 543 | Err(format!("'-{}' expects an argument", curr))?; [INFO] [stdout] 544 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pam.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if let Err(e) = pam.credentials_reinitialize() { [INFO] [stdout] | ^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pam.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 79 ~ match pam.credentials_reinitialize() { Err(e) => { [INFO] [stdout] 80 | dev_info!( [INFO] [stdout] ... [INFO] [stdout] 83 | ); [INFO] [stdout] 84 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | if let (Some(record_file), Some(scope)) = (&mut auth_status.record_file, scope) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 156 ~ match (&mut auth_status.record_file, scope) { (Some(record_file), Some(scope)) => { [INFO] [stdout] 157 | match record_file.create(scope, context.current_user.uid) { [INFO] [stdout] ... [INFO] [stdout] 162 | } [INFO] [stdout] 163 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:266:23 [INFO] [stdout] | [INFO] [stdout] 266 | let tty_info = if let Ok(tty_name) = current_tty_name() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 266 ~ let tty_info = match current_tty_name() { Ok(tty_name) => { [INFO] [stdout] 267 | format!("TTY={} ;", escape_os_str_lossy(&tty_name)) [INFO] [stdout] 268 ~ } _ => { [INFO] [stdout] 269 | String::from("") [INFO] [stdout] 270 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/sudo/pipeline/list.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | if let Authorization::Forbidden = judgement.authorization() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/sudo/pipeline/list.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 164 ~ match judgement.authorization() { Authorization::Forbidden => { [INFO] [stdout] 165 | return Err(Error::Silent); [INFO] [stdout] 166 ~ } _ => { [INFO] [stdout] 167 | let command_is_relative_path = [INFO] [stdout] ... [INFO] [stdout] 180 | } [INFO] [stdout] 181 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 91 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Migrating bin/sudo.rs from 2021 edition to 2024 [INFO] [stderr] Migrating bin/su.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.72s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling sudo-rs v0.2.3 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/cutils/mod.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / extern "C" { [INFO] [stdout] 14 | | #[cfg_attr( [INFO] [stdout] 15 | | any(target_os = "macos", target_os = "ios", target_os = "freebsd"), [INFO] [stdout] 16 | | link_name = "__error" [INFO] [stdout] ... | [INFO] [stdout] 23 | | fn errno_location() -> *mut libc::c_int; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | / extern "C" { [INFO] [stdout] 52 | | pub fn pam_set_item( [INFO] [stdout] 53 | | pamh: *mut pam_handle_t, [INFO] [stdout] 54 | | item_type: libc::c_int, [INFO] [stdout] 55 | | item: *const libc::c_void, [INFO] [stdout] 56 | | ) -> libc::c_int; [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | / extern "C" { [INFO] [stdout] 59 | | pub fn pam_get_item( [INFO] [stdout] 60 | | pamh: *const pam_handle_t, [INFO] [stdout] 61 | | item_type: libc::c_int, [INFO] [stdout] 62 | | item: *mut *const libc::c_void, [INFO] [stdout] 63 | | ) -> libc::c_int; [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / extern "C" { [INFO] [stdout] 66 | | pub fn pam_strerror(pamh: *mut pam_handle_t, errnum: libc::c_int) -> *const libc::c_char; [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | / extern "C" { [INFO] [stdout] 69 | | pub fn pam_getenvlist(pamh: *mut pam_handle_t) -> *mut *mut libc::c_char; [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | / extern "C" { [INFO] [stdout] 215 | | pub fn pam_start( [INFO] [stdout] 216 | | service_name: *const libc::c_char, [INFO] [stdout] 217 | | user: *const libc::c_char, [INFO] [stdout] ... | [INFO] [stdout] 220 | | ) -> libc::c_int; [INFO] [stdout] 221 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | / extern "C" { [INFO] [stdout] 223 | | pub fn pam_end(pamh: *mut pam_handle_t, pam_status: libc::c_int) -> libc::c_int; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:225:1 [INFO] [stdout] | [INFO] [stdout] 225 | / extern "C" { [INFO] [stdout] 226 | | pub fn pam_authenticate(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 227 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:228:1 [INFO] [stdout] | [INFO] [stdout] 228 | / extern "C" { [INFO] [stdout] 229 | | pub fn pam_setcred(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 230 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:231:1 [INFO] [stdout] | [INFO] [stdout] 231 | / extern "C" { [INFO] [stdout] 232 | | pub fn pam_acct_mgmt(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 233 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | / extern "C" { [INFO] [stdout] 235 | | pub fn pam_open_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 236 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:237:1 [INFO] [stdout] | [INFO] [stdout] 237 | / extern "C" { [INFO] [stdout] 238 | | pub fn pam_close_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 239 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:240:1 [INFO] [stdout] | [INFO] [stdout] 240 | / extern "C" { [INFO] [stdout] 241 | | pub fn pam_chauthtok(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/cutils/mod.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / extern "C" { [INFO] [stdout] 14 | | #[cfg_attr( [INFO] [stdout] 15 | | any(target_os = "macos", target_os = "ios", target_os = "freebsd"), [INFO] [stdout] 16 | | link_name = "__error" [INFO] [stdout] ... | [INFO] [stdout] 23 | | fn errno_location() -> *mut libc::c_int; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | / extern "C" { [INFO] [stdout] 52 | | pub fn pam_set_item( [INFO] [stdout] 53 | | pamh: *mut pam_handle_t, [INFO] [stdout] 54 | | item_type: libc::c_int, [INFO] [stdout] 55 | | item: *const libc::c_void, [INFO] [stdout] 56 | | ) -> libc::c_int; [INFO] [stdout] 57 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | / extern "C" { [INFO] [stdout] 59 | | pub fn pam_get_item( [INFO] [stdout] 60 | | pamh: *const pam_handle_t, [INFO] [stdout] 61 | | item_type: libc::c_int, [INFO] [stdout] 62 | | item: *mut *const libc::c_void, [INFO] [stdout] 63 | | ) -> libc::c_int; [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / extern "C" { [INFO] [stdout] 66 | | pub fn pam_strerror(pamh: *mut pam_handle_t, errnum: libc::c_int) -> *const libc::c_char; [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | / extern "C" { [INFO] [stdout] 69 | | pub fn pam_getenvlist(pamh: *mut pam_handle_t) -> *mut *mut libc::c_char; [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:214:1 [INFO] [stdout] | [INFO] [stdout] 214 | / extern "C" { [INFO] [stdout] 215 | | pub fn pam_start( [INFO] [stdout] 216 | | service_name: *const libc::c_char, [INFO] [stdout] 217 | | user: *const libc::c_char, [INFO] [stdout] ... | [INFO] [stdout] 220 | | ) -> libc::c_int; [INFO] [stdout] 221 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | / extern "C" { [INFO] [stdout] 223 | | pub fn pam_end(pamh: *mut pam_handle_t, pam_status: libc::c_int) -> libc::c_int; [INFO] [stdout] 224 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:225:1 [INFO] [stdout] | [INFO] [stdout] 225 | / extern "C" { [INFO] [stdout] 226 | | pub fn pam_authenticate(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 227 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:228:1 [INFO] [stdout] | [INFO] [stdout] 228 | / extern "C" { [INFO] [stdout] 229 | | pub fn pam_setcred(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 230 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:231:1 [INFO] [stdout] | [INFO] [stdout] 231 | / extern "C" { [INFO] [stdout] 232 | | pub fn pam_acct_mgmt(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 233 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | / extern "C" { [INFO] [stdout] 235 | | pub fn pam_open_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 236 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:237:1 [INFO] [stdout] | [INFO] [stdout] 237 | / extern "C" { [INFO] [stdout] 238 | | pub fn pam_close_session(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 239 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/pam/sys.rs:240:1 [INFO] [stdout] | [INFO] [stdout] 240 | / extern "C" { [INFO] [stdout] 241 | | pub fn pam_chauthtok(pamh: *mut pam_handle_t, flags: libc::c_int) -> libc::c_int; [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:343:35 [INFO] [stdout] | [INFO] [stdout] 343 | name: SudoString::new(string_from_ptr(pwd.pw_name))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | gecos: string_from_ptr(pwd.pw_gecos), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:345:33 [INFO] [stdout] | [INFO] [stdout] 345 | home: SudoPath::new(os_string_from_ptr(pwd.pw_dir).into())?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:346:20 [INFO] [stdout] | [INFO] [stdout] 346 | shell: os_string_from_ptr(pwd.pw_shell).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:347:21 [INFO] [stdout] | [INFO] [stdout] 347 | passwd: string_from_ptr(pwd.pw_passwd), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:433:19 [INFO] [stdout] | [INFO] [stdout] 433 | name: string_from_ptr(grp.gr_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | unsafe fn from_libc(grp: &libc::group) -> Group { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 13 previous errors; 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `sudo-rs` (lib) due to 14 previous errors; 6 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:343:35 [INFO] [stdout] | [INFO] [stdout] 343 | name: SudoString::new(string_from_ptr(pwd.pw_name))?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | unsafe fn from_libc(pwd: &libc::passwd) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:344:20 [INFO] [stdout] | [INFO] [stdout] 344 | gecos: string_from_ptr(pwd.pw_gecos), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:345:33 [INFO] [stdout] | [INFO] [stdout] 345 | home: SudoPath::new(os_string_from_ptr(pwd.pw_dir).into())?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::os_string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:346:20 [INFO] [stdout] | [INFO] [stdout] 346 | shell: os_string_from_ptr(pwd.pw_shell).into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:347:21 [INFO] [stdout] | [INFO] [stdout] 347 | passwd: string_from_ptr(pwd.pw_passwd), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `cutils::string_from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/system/mod.rs:433:19 [INFO] [stdout] | [INFO] [stdout] 433 | name: string_from_ptr(grp.gr_name), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/system/mod.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | unsafe fn from_libc(grp: &libc::group) -> Group { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 13 previous errors; 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `sudo-rs` (lib test) due to 14 previous errors; 6 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "8eae764a21fdfc46dc63a850ce8a46d56adbc869ee78fc459490080bb25bc85a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8eae764a21fdfc46dc63a850ce8a46d56adbc869ee78fc459490080bb25bc85a", kill_on_drop: false }` [INFO] [stdout] 8eae764a21fdfc46dc63a850ce8a46d56adbc869ee78fc459490080bb25bc85a