mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 13:25:00 +00:00
Fix index out of bounds in SourceDistributionFilename::parse (#353)
Found this one in the top 8k pypi tests too
This commit is contained in:
parent
f96865edd1
commit
c11586f2f0
1 changed files with 16 additions and 3 deletions
|
@ -71,13 +71,17 @@ impl SourceDistributionFilename {
|
|||
));
|
||||
};
|
||||
|
||||
if stem.len() <= package_name.as_ref().len() + "-".len() {
|
||||
return Err(SourceDistributionFilenameError::InvalidFilename {
|
||||
filename: filename.to_string(),
|
||||
package_name: package_name.to_string(),
|
||||
});
|
||||
}
|
||||
let actual_package_name = PackageName::from_str(&stem[..package_name.as_ref().len()])
|
||||
.map_err(|err| {
|
||||
SourceDistributionFilenameError::InvalidPackageName(filename.to_string(), err)
|
||||
})?;
|
||||
if stem.len() <= package_name.as_ref().len() + "-".len()
|
||||
|| &actual_package_name != package_name
|
||||
{
|
||||
if &actual_package_name != package_name {
|
||||
return Err(SourceDistributionFilenameError::InvalidFilename {
|
||||
filename: filename.to_string(),
|
||||
package_name: package_name.to_string(),
|
||||
|
@ -154,4 +158,13 @@ mod tests {
|
|||
.is_err());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn name_to_long() {
|
||||
assert!(SourceDistributionFilename::parse(
|
||||
"foo.zip",
|
||||
&PackageName::from_str("foo-lib").unwrap()
|
||||
)
|
||||
.is_err());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue