From edda59a703ba52a7ccb4834e95eae3f9cc0792a6 Mon Sep 17 00:00:00 2001 From: Chris Bookholt Date: Wed, 1 Jul 2026 16:49:19 -0700 Subject: [PATCH] git-utils: fix Windows traversal regression test --- codex-rs/git-utils/src/git_command_tests.rs | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/codex-rs/git-utils/src/git_command_tests.rs b/codex-rs/git-utils/src/git_command_tests.rs index 5ea99191d6..4347e71d50 100644 --- a/codex-rs/git-utils/src/git_command_tests.rs +++ b/codex-rs/git-utils/src/git_command_tests.rs @@ -361,9 +361,8 @@ fn resolver_rejects_parent_traversal_spelled_through_repository() { let locations = locations_for_root(&repo); for root in &locations.roots { - // Append without PathBuf::push: it resolves `..` when `root` has a - // verbatim Windows prefix, before the resolver can inspect the PATH - // spelling. + // Construct the PATH entry as raw text so its `..` component survives + // long enough for the resolver to inspect the original spelling. let traversing_path = raw_parent_traversal(root, "trusted-bin"); let search_path = std::env::join_paths([&traversing_path]).expect("PATH"); let split_paths = std::env::split_paths(&search_path).collect::>(); @@ -373,19 +372,6 @@ fn resolver_rejects_parent_traversal_spelled_through_repository() { "raw PATH traversal was not rejected from {root:?}" ); - #[cfg(windows)] - if matches!( - root.components().next(), - Some(Component::Prefix(prefix)) if prefix.kind().is_verbatim() - ) { - assert_eq!( - split_paths[0].join(git_executable_name()), - std::fs::canonicalize(&trusted_bin) - .expect("canonical trusted bin") - .join(git_executable_name()) - ); - } - assert!( matches!( GitRunner::from_search_path(&locations, &search_path),