[INFO] cloning repository https://github.com/mister-teddy/ptrace_playground [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mister-teddy/ptrace_playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ec945861e3f2a49f81b376f875d9a8334ed0f9f3 [INFO] checking mister-teddy/ptrace_playground against try#4907eac94165faff6c5e5e015670b1c584275f7b for pr-154149 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mister-teddy/ptrace_playground [INFO] finished tweaking git repo https://github.com/mister-teddy/ptrace_playground [INFO] tweaked toml for git repo https://github.com/mister-teddy/ptrace_playground written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mister-teddy/ptrace_playground on toolchain 4907eac94165faff6c5e5e015670b1c584275f7b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4907eac94165faff6c5e5e015670b1c584275f7b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mister-teddy/ptrace_playground 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" "+4907eac94165faff6c5e5e015670b1c584275f7b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded nix v0.31.1 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4907eac94165faff6c5e5e015670b1c584275f7b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9052e906e34f57810935fd367e7567aa6959487266e0decaf110d03fdea883ab [INFO] running `Command { std: "docker" "start" "-a" "9052e906e34f57810935fd367e7567aa6959487266e0decaf110d03fdea883ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9052e906e34f57810935fd367e7567aa6959487266e0decaf110d03fdea883ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9052e906e34f57810935fd367e7567aa6959487266e0decaf110d03fdea883ab", kill_on_drop: false }` [INFO] [stdout] 9052e906e34f57810935fd367e7567aa6959487266e0decaf110d03fdea883ab [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4907eac94165faff6c5e5e015670b1c584275f7b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 89d2ace69ffb15f76f87dfc09286ee5708630d4e60d1aeb11ee927541deeba38 [INFO] running `Command { std: "docker" "start" "-a" "89d2ace69ffb15f76f87dfc09286ee5708630d4e60d1aeb11ee927541deeba38", kill_on_drop: false }` [INFO] [stderr] Compiling nix v0.31.1 [INFO] [stderr] Compiling ptrace_playground v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking libc v0.2.180 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rootless.rs:955:13 [INFO] [stdout] | [INFO] [stdout] 954 | nix::libc::ptrace( [INFO] [stdout] | ----------------- arguments to this function are incorrect [INFO] [stdout] 955 | PTRACE_GET_SYSCALL_INFO, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `i32` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/linux_like/linux/gnu/mod.rs:1079:12 [INFO] [stdout] | [INFO] [stdout] 1079 | pub fn ptrace(request: c_uint, ...) -> c_long; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 955 | PTRACE_GET_SYSCALL_INFO.try_into().unwrap(), [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/rootless.rs:955:13 [INFO] [stdout] | [INFO] [stdout] 954 | nix::libc::ptrace( [INFO] [stdout] | ----------------- arguments to this function are incorrect [INFO] [stdout] 955 | PTRACE_GET_SYSCALL_INFO, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `i32` [INFO] [stdout] | [INFO] [stdout] note: function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/linux_like/linux/gnu/mod.rs:1079:12 [INFO] [stdout] | [INFO] [stdout] 1079 | pub fn ptrace(request: c_uint, ...) -> c_long; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 955 | PTRACE_GET_SYSCALL_INFO.try_into().unwrap(), [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1229:19 [INFO] [stdout] | [INFO] [stdout] 1229 | let reserve = nix::libc::mmap( [INFO] [stdout] | ___________________^ [INFO] [stdout] 1230 | | std::ptr::null_mut(), [INFO] [stdout] 1231 | | span as usize, [INFO] [stdout] 1232 | | nix::libc::PROT_NONE, [INFO] [stdout] ... | [INFO] [stdout] 1235 | | 0, [INFO] [stdout] 1236 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [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/rootless.rs:1217:1 [INFO] [stdout] | [INFO] [stdout] 1217 | unsafe fn map_elf(path: &Path, img: &ElfImage) -> Option<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::open` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1243:14 [INFO] [stdout] | [INFO] [stdout] 1243 | let fd = nix::libc::open(cpath.as_ptr(), nix::libc::O_RDONLY); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1254:26 [INFO] [stdout] | [INFO] [stdout] 1254 | let mapped = nix::libc::mmap( [INFO] [stdout] | __________________________^ [INFO] [stdout] 1255 | | map_addr, [INFO] [stdout] 1256 | | file_len as usize, [INFO] [stdout] 1257 | | prot_from_flags(seg.flags), [INFO] [stdout] ... | [INFO] [stdout] 1260 | | off_page as nix::libc::off_t, [INFO] [stdout] 1261 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1263:17 [INFO] [stdout] | [INFO] [stdout] 1263 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1271:26 [INFO] [stdout] | [INFO] [stdout] 1271 | let mapped = nix::libc::mmap( [INFO] [stdout] | __________________________^ [INFO] [stdout] 1272 | | anon_addr, [INFO] [stdout] 1273 | | anon_len as usize, [INFO] [stdout] 1274 | | prot_from_flags(seg.flags), [INFO] [stdout] ... | [INFO] [stdout] 1277 | | 0, [INFO] [stdout] 1278 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1280:17 [INFO] [stdout] | [INFO] [stdout] 1280 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1285:5 [INFO] [stdout] | [INFO] [stdout] 1285 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1332:40 [INFO] [stdout] | [INFO] [stdout] 1332 | let (target_base, _target_entry) = map_elf(target_path, &target_img)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [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/rootless.rs:1326:1 [INFO] [stdout] | [INFO] [stdout] 1326 | unsafe fn run_loader_shim(target: &[u8], interp: &[u8], target_args: &[OsString]) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1333:39 [INFO] [stdout] | [INFO] [stdout] 1333 | let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1336:17 [INFO] [stdout] | [INFO] [stdout] 1336 | let stack = nix::libc::mmap( [INFO] [stdout] | _________________^ [INFO] [stdout] 1337 | | std::ptr::null_mut(), [INFO] [stdout] 1338 | | stack_len, [INFO] [stdout] 1339 | | nix::libc::PROT_READ | nix::libc::PROT_WRITE, [INFO] [stdout] ... | [INFO] [stdout] 1342 | | 0, [INFO] [stdout] 1343 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1372:9 [INFO] [stdout] | [INFO] [stdout] 1372 | std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1381:9 [INFO] [stdout] | [INFO] [stdout] 1381 | std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1390:9 [INFO] [stdout] | [INFO] [stdout] 1390 | std::ptr::copy_nonoverlapping(bs.as_ptr(), *sp_ref as *mut u8, 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1409:17 [INFO] [stdout] | [INFO] [stdout] 1409 | std::ptr::copy_nonoverlapping(s.as_ptr(), sp as *mut u8, s.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_bytes` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1423:9 [INFO] [stdout] | [INFO] [stdout] 1423 | std::ptr::write_bytes(rand_ptr as *mut u8, 0, rand_len); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interp_entry` [INFO] [stdout] --> src/rootless.rs:1333:23 [INFO] [stdout] | [INFO] [stdout] 1333 | let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp_entry` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0308. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1229:19 [INFO] [stdout] | [INFO] [stdout] 1229 | let reserve = nix::libc::mmap( [INFO] [stdout] | ___________________^ [INFO] [stdout] 1230 | | std::ptr::null_mut(), [INFO] [stdout] 1231 | | span as usize, [INFO] [stdout] 1232 | | nix::libc::PROT_NONE, [INFO] [stdout] ... | [INFO] [stdout] 1235 | | 0, [INFO] [stdout] 1236 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [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/rootless.rs:1217:1 [INFO] [stdout] | [INFO] [stdout] 1217 | unsafe fn map_elf(path: &Path, img: &ElfImage) -> Option<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::open` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1243:14 [INFO] [stdout] | [INFO] [stdout] 1243 | let fd = nix::libc::open(cpath.as_ptr(), nix::libc::O_RDONLY); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1254:26 [INFO] [stdout] | [INFO] [stdout] 1254 | let mapped = nix::libc::mmap( [INFO] [stdout] | __________________________^ [INFO] [stdout] 1255 | | map_addr, [INFO] [stdout] 1256 | | file_len as usize, [INFO] [stdout] 1257 | | prot_from_flags(seg.flags), [INFO] [stdout] ... | [INFO] [stdout] 1260 | | off_page as nix::libc::off_t, [INFO] [stdout] 1261 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1263:17 [INFO] [stdout] | [INFO] [stdout] 1263 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1271:26 [INFO] [stdout] | [INFO] [stdout] 1271 | let mapped = nix::libc::mmap( [INFO] [stdout] | __________________________^ [INFO] [stdout] 1272 | | anon_addr, [INFO] [stdout] 1273 | | anon_len as usize, [INFO] [stdout] 1274 | | prot_from_flags(seg.flags), [INFO] [stdout] ... | [INFO] [stdout] 1277 | | 0, [INFO] [stdout] 1278 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1280:17 [INFO] [stdout] | [INFO] [stdout] 1280 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1285:5 [INFO] [stdout] | [INFO] [stdout] 1285 | nix::libc::close(fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1332:40 [INFO] [stdout] | [INFO] [stdout] 1332 | let (target_base, _target_entry) = map_elf(target_path, &target_img)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [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/rootless.rs:1326:1 [INFO] [stdout] | [INFO] [stdout] 1326 | unsafe fn run_loader_shim(target: &[u8], interp: &[u8], target_args: &[OsString]) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1333:39 [INFO] [stdout] | [INFO] [stdout] 1333 | let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1336:17 [INFO] [stdout] | [INFO] [stdout] 1336 | let stack = nix::libc::mmap( [INFO] [stdout] | _________________^ [INFO] [stdout] 1337 | | std::ptr::null_mut(), [INFO] [stdout] 1338 | | stack_len, [INFO] [stdout] 1339 | | nix::libc::PROT_READ | nix::libc::PROT_WRITE, [INFO] [stdout] ... | [INFO] [stdout] 1342 | | 0, [INFO] [stdout] 1343 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1372:9 [INFO] [stdout] | [INFO] [stdout] 1372 | std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1381:9 [INFO] [stdout] | [INFO] [stdout] 1381 | std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1390:9 [INFO] [stdout] | [INFO] [stdout] 1390 | std::ptr::copy_nonoverlapping(bs.as_ptr(), *sp_ref as *mut u8, 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1409:17 [INFO] [stdout] | [INFO] [stdout] 1409 | std::ptr::copy_nonoverlapping(s.as_ptr(), sp as *mut u8, s.len()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_bytes` is unsafe and requires unsafe block [INFO] [stdout] --> src/rootless.rs:1423:9 [INFO] [stdout] | [INFO] [stdout] 1423 | std::ptr::write_bytes(rand_ptr as *mut u8, 0, rand_len); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `ptrace_playground` (lib test) due to 1 previous error; 16 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `interp_entry` [INFO] [stdout] --> src/rootless.rs:1333:23 [INFO] [stdout] | [INFO] [stdout] 1333 | let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp_entry` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0308. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ptrace_playground` (lib) due to 1 previous error; 16 warnings emitted [INFO] running `Command { std: "docker" "inspect" "89d2ace69ffb15f76f87dfc09286ee5708630d4e60d1aeb11ee927541deeba38", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "89d2ace69ffb15f76f87dfc09286ee5708630d4e60d1aeb11ee927541deeba38", kill_on_drop: false }` [INFO] [stdout] 89d2ace69ffb15f76f87dfc09286ee5708630d4e60d1aeb11ee927541deeba38