Skip to content

Commit 8412d30

Browse files
committed
Auto merge of #13152 - hi-rustin:rustin-patch-empty-name, r=epage
Do not allow empty name in package ID spec
2 parents 0e18edf + 1248522 commit 8412d30

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/cargo/util_schemas/core/package_id_spec.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ impl PackageIdSpec {
9797
Some(version) => Some(version.parse::<PartialVersion>()?),
9898
None => None,
9999
};
100+
if name.is_empty() {
101+
bail!("package ID specification must have a name: `{spec}`");
102+
}
100103
validate_package_name(name, "pkgid", "")?;
101104
Ok(PackageIdSpec {
102105
name: String::from(name),
@@ -182,6 +185,10 @@ impl PackageIdSpec {
182185
None => (String::from(path_name), None),
183186
}
184187
};
188+
if name.is_empty() {
189+
bail!("package ID specification must have a name: `{url}`");
190+
}
191+
validate_package_name(name.as_str(), "pkgid", "")?;
185192
Ok(PackageIdSpec {
186193
name,
187194
version,
@@ -585,5 +592,8 @@ mod tests {
585592
"sparse+https://github.com/rust-lang/cargo#0.52.0?branch=dev"
586593
)
587594
.is_err());
595+
assert!(PackageIdSpec::parse("@1.2.3").is_err());
596+
assert!(PackageIdSpec::parse("registry+https://github.com").is_err());
597+
assert!(PackageIdSpec::parse("https://crates.io/1foo#1.2.3").is_err())
588598
}
589599
}

0 commit comments

Comments
 (0)