diff --git a/crates/uv-client/src/flat_index.rs b/crates/uv-client/src/flat_index.rs index e88de116e..5f7be7aad 100644 --- a/crates/uv-client/src/flat_index.rs +++ b/crates/uv-client/src/flat_index.rs @@ -228,10 +228,24 @@ impl<'a> FlatIndexClient<'a> { for entry in fs_err::read_dir(path)? { let entry = entry?; let metadata = entry.metadata()?; - if !metadata.is_file() { + + if metadata.is_dir() { continue; } + if metadata.is_symlink() { + let Ok(target) = entry.path().read_link() else { + warn!( + "Skipping unreadable symlink in `--find-links` directory: {}", + entry.path().display() + ); + continue; + }; + if target.is_dir() { + continue; + } + } + let Ok(filename) = entry.file_name().into_string() else { warn!( "Skipping non-UTF-8 filename in `--find-links` directory: {}",