[INFO] fetching crate shell-sanitize-rules 0.1.0... [INFO] testing shell-sanitize-rules-0.1.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate shell-sanitize-rules 0.1.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate shell-sanitize-rules 0.1.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate shell-sanitize-rules 0.1.0 [INFO] tweaked toml for crates.io crate shell-sanitize-rules 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate shell-sanitize-rules 0.1.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate shell-sanitize-rules 0.1.0 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded shell-sanitize v0.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8c8b587d825c1913c08f7640de91b5e764af31d88deae08d1b6d0c50d01cdf5f [INFO] running `Command { std: "docker" "start" "-a" "8c8b587d825c1913c08f7640de91b5e764af31d88deae08d1b6d0c50d01cdf5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8c8b587d825c1913c08f7640de91b5e764af31d88deae08d1b6d0c50d01cdf5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c8b587d825c1913c08f7640de91b5e764af31d88deae08d1b6d0c50d01cdf5f", kill_on_drop: false }` [INFO] [stdout] 8c8b587d825c1913c08f7640de91b5e764af31d88deae08d1b6d0c50d01cdf5f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c862260a17603117af43069c088c05ee110274753ced6e46213ef10c98f7d563 [INFO] running `Command { std: "docker" "start" "-a" "c862260a17603117af43069c088c05ee110274753ced6e46213ef10c98f7d563", kill_on_drop: false }` [INFO] [stderr] Compiling shell-sanitize v0.1.0 [INFO] [stderr] Compiling shell-sanitize-rules v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.62s [INFO] running `Command { std: "docker" "inspect" "c862260a17603117af43069c088c05ee110274753ced6e46213ef10c98f7d563", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c862260a17603117af43069c088c05ee110274753ced6e46213ef10c98f7d563", kill_on_drop: false }` [INFO] [stdout] c862260a17603117af43069c088c05ee110274753ced6e46213ef10c98f7d563 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b47b0c12c210cb28c544f589e928d3552097b3505525c60c1a9efb6668ac8502 [INFO] running `Command { std: "docker" "start" "-a" "b47b0c12c210cb28c544f589e928d3552097b3505525c60c1a9efb6668ac8502", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling clap_builder v4.5.58 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling clap v4.5.58 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling shell-sanitize-rules v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 27.92s [INFO] running `Command { std: "docker" "inspect" "b47b0c12c210cb28c544f589e928d3552097b3505525c60c1a9efb6668ac8502", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b47b0c12c210cb28c544f589e928d3552097b3505525c60c1a9efb6668ac8502", kill_on_drop: false }` [INFO] [stdout] b47b0c12c210cb28c544f589e928d3552097b3505525c60c1a9efb6668ac8502 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4267f5f0370fae45e34caa7d060bbc64c3f8da1eab9de7fc53b70aa3a2cdcc7e [INFO] running `Command { std: "docker" "start" "-a" "4267f5f0370fae45e34caa7d060bbc64c3f8da1eab9de7fc53b70aa3a2cdcc7e", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shell_sanitize_rules-cd01edebcb6aab69) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test charset::tests::ascii_membership ... ok [INFO] [stdout] test charset::tests::non_ascii_membership ... ok [INFO] [stdout] test charset::tests::mixed_ascii_and_non_ascii ... ok [INFO] [stdout] test charset::tests::empty_set ... ok [INFO] [stdout] test charset::tests::duplicates_handled ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/preset_tests.rs (/opt/rustwide/target/debug/deps/preset_tests-9dda73448b9bc224) [INFO] [stdout] [INFO] [stdout] running 36 tests [INFO] [stdout] test command_arg::accepts_shell_metacharacters ... ok [INFO] [stdout] test command_arg::rejects_null_byte ... ok [INFO] [stdout] test file_path::accepts_current_dir_prefix ... ok [INFO] [stdout] test file_path::accepts_relative_paths ... ok [INFO] [stdout] test file_path::rejects_absolute_paths ... ok [INFO] [stdout] test file_path::rejects_ai_traversal_attack ... ok [INFO] [stdout] test file_path::allows_shell_metacharacters_in_path ... ok [INFO] [stdout] test file_path::rejects_control_chars_in_path ... ok [INFO] [stdout] test command_arg::accepts_normal_argument ... ok [INFO] [stdout] test file_path::rejects_parent_traversal ... ok [INFO] [stdout] test file_path_absolute::accepts_relative_paths ... ok [INFO] [stdout] test file_path_absolute::rejects_traversal_even_in_absolute ... ok [INFO] [stdout] test preset_boundaries::absolute_path_passes_file_path_absolute_but_fails_file_path ... ok [INFO] [stdout] test preset_boundaries::command_arg_is_most_permissive ... ok [INFO] [stdout] test preset_boundaries::traversal_passes_shell_command_but_fails_file_path ... ok [INFO] [stdout] test preset_boundaries::strict_is_superset_of_all_presets ... ok [INFO] [stdout] test shell_command::accepts_safe_identifiers ... ok [INFO] [stdout] test shell_command::rejects_ai_env_exfiltration ... ok [INFO] [stdout] test shell_command::rejects_env_variable_exfiltration ... ok [INFO] [stdout] test shell_command::rejects_command_substitution ... ok [INFO] [stdout] test shell_command::accepts_paths_without_traversal ... ok [INFO] [stdout] test preset_boundaries::shell_meta_passes_file_path_but_fails_shell_command ... ok [INFO] [stdout] test shell_command::rejects_newline_command_splitting ... ok [INFO] [stdout] test strict::rejects_combined_ai_attack ... ok [INFO] [stdout] test shell_command::rejects_pipe_injection ... ok [INFO] [stdout] test shell_command::rejects_glob_expansion ... ok [INFO] [stdout] test strict::rejects_env_expansion ... ok [INFO] [stdout] test strict::rejects_glob ... ok [INFO] [stdout] test shell_command::rejects_semicolon_injection ... ok [INFO] [stdout] test strict::rejects_control_char ... ok [INFO] [stdout] test strict::accepts_minimal_safe_input ... ok [INFO] [stdout] test strict::rejects_path_traversal ... ok [INFO] [stdout] test file_path_absolute::accepts_absolute_paths ... ok [INFO] [stdout] test strict::rejects_shell_injection ... ok [INFO] [stdout] test command_arg::rejects_ansi_escape ... ok [INFO] [stdout] test shell_command::rejects_ai_prompt_injection_shell ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/proptest_rules.rs (/opt/rustwide/target/debug/deps/proptest_rules-ab1bfbdf3107fcbb) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test semicolon_always_rejected ... ok [INFO] [stdout] test star_always_rejected ... ok [INFO] [stdout] test dotdot_always_rejected ... ok [INFO] [stdout] test shell_meta_rule_never_panics ... ok [INFO] [stdout] test glob_rule_never_panics ... ok [INFO] [stdout] test null_byte_always_rejected ... ok [INFO] [stdout] test alphanumeric_always_passes_env ... ok [INFO] [stdout] test dollar_var_always_rejected ... ok [INFO] [stdout] test alphanumeric_always_passes_shell_meta ... ok [INFO] [stdout] test control_char_rule_never_panics ... ok [INFO] [stdout] test alphanumeric_always_passes_glob ... ok [INFO] [stdout] test alphanumeric_always_passes_control_char ... ok [INFO] [stdout] test path_traversal_rule_never_panics ... ok [INFO] [stdout] test env_expansion_rule_never_panics ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.44s [INFO] [stdout] [INFO] [stderr] Running tests/rules_tests.rs (/opt/rustwide/target/debug/deps/rules_tests-344e5146ae96db4d) [INFO] [stdout] [INFO] [stdout] running 60 tests [INFO] [stdout] test control_char::accepts_empty ... ok [INFO] [stdout] test control_char::allows_configured_exceptions ... ok [INFO] [stdout] test control_char::rejects_escape_sequence ... ok [INFO] [stdout] test control_char::rejects_newline ... ok [INFO] [stdout] test control_char::accepts_ascii_printable ... ok [INFO] [stdout] test control_char::tab_rejected_by_default ... ok [INFO] [stdout] test env_expansion::accepts_dollar_at_end ... ok [INFO] [stdout] test control_char::rejects_null_byte ... ok [INFO] [stdout] test env_expansion::accepts_plain_text ... ok [INFO] [stdout] test env_expansion::multiple_vars_all_reported ... ok [INFO] [stdout] test env_expansion::posix_only_skips_windows ... ok [INFO] [stdout] test control_char::rejects_del ... ok [INFO] [stdout] test control_char::rejects_c1_controls ... ok [INFO] [stdout] test control_char::reports_multiple_violations ... ok [INFO] [stdout] test env_expansion::rejects_dollar_braced ... ok [INFO] [stdout] test env_expansion::rejects_dollar_name ... ok [INFO] [stdout] test env_expansion::rejects_windows_percent ... ok [INFO] [stdout] test glob::accepts_normal_text ... ok [INFO] [stdout] test glob::custom_denied ... ok [INFO] [stdout] test glob::rejects_brackets ... ok [INFO] [stdout] test glob::rejects_question_mark ... ok [INFO] [stdout] test glob::rejects_star ... ok [INFO] [stdout] test integration::default_rules_accept_safe_input ... ok [INFO] [stdout] test integration::default_rules_reject_command_injection ... ok [INFO] [stdout] test integration::default_rules_reject_env_expansion ... ok [INFO] [stdout] test integration::default_rules_reject_path_traversal ... ok [INFO] [stdout] test integration::default_rules_reject_tilde_expansion ... ok [INFO] [stdout] test path_traversal::accepts_dot_in_filename ... ok [INFO] [stdout] test integration::violations_from_multiple_rules_aggregated ... ok [INFO] [stdout] test env_expansion::accepts_dollar_number ... ok [INFO] [stdout] test path_traversal::accepts_absolute_when_allowed ... ok [INFO] [stdout] test path_traversal::accepts_simple_filename ... ok [INFO] [stdout] test path_traversal::accepts_relative_path ... ok [INFO] [stdout] test path_traversal::rejects_absolute_unix ... ok [INFO] [stdout] test path_traversal::rejects_absolute_windows ... ok [INFO] [stdout] test env_expansion::rejects_dollar_paren ... ok [INFO] [stdout] test path_traversal::rejects_nested_traversal ... ok [INFO] [stdout] test env_expansion::rejects_underscore_prefixed ... ok [INFO] [stdout] test path_traversal::rejects_parent_traversal ... ok [INFO] [stdout] test path_traversal::rejects_backslash_traversal ... ok [INFO] [stdout] test shell_meta::accepts_alphanumeric_and_safe_chars ... ok [INFO] [stdout] test glob::accepts_paths ... ok [INFO] [stdout] test path_traversal::rejects_windows_forward_slash ... ok [INFO] [stdout] test glob::rejects_braces ... ok [INFO] [stdout] test shell_meta::accepts_path_separators ... ok [INFO] [stdout] test shell_meta::accepts_dot ... ok [INFO] [stdout] test path_traversal::accepts_current_dir ... ok [INFO] [stdout] test shell_meta::accepts_spaces ... ok [INFO] [stdout] test shell_meta::custom_denied_chars ... ok [INFO] [stdout] test shell_meta::extra_denied_chars ... ok [INFO] [stdout] test shell_meta::rejects_backtick ... ok [INFO] [stdout] test shell_meta::rejects_pipe ... ok [INFO] [stdout] test shell_meta::rejects_redirect ... ok [INFO] [stdout] test shell_meta::rejects_semicolon ... ok [INFO] [stdout] test shell_meta::rejects_ampersand ... ok [INFO] [stdout] test control_char::accepts_unicode_text ... ok [INFO] [stdout] test shell_meta::rejects_tilde ... ok [INFO] [stdout] test shell_meta::rejects_tilde_user ... ok [INFO] [stdout] test shell_meta::rejects_parentheses ... ok [INFO] [stdout] test shell_meta::rejects_dollar ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Doc-tests shell_sanitize_rules [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test src/control_char.rs - control_char::ControlCharRule::allowing (line 30) ... ok [INFO] [stdout] test src/presets.rs - presets::shell_command (line 135) ... ok [INFO] [stdout] test src/presets.rs - presets::strict (line 240) ... ok [INFO] [stdout] test src/presets.rs - presets::file_path (line 171) ... ok [INFO] [stdout] test src/presets.rs - presets::file_path_absolute (line 205) ... ok [INFO] [stdout] test src/lib.rs - (line 7) ... ok [INFO] [stdout] test src/presets.rs - presets::command_arg (line 107) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.67s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4267f5f0370fae45e34caa7d060bbc64c3f8da1eab9de7fc53b70aa3a2cdcc7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4267f5f0370fae45e34caa7d060bbc64c3f8da1eab9de7fc53b70aa3a2cdcc7e", kill_on_drop: false }` [INFO] [stdout] 4267f5f0370fae45e34caa7d060bbc64c3f8da1eab9de7fc53b70aa3a2cdcc7e