Skip to content

Commit 21dc451

Browse files
committed
Check return value of VersionReq::parse
Fixes: #27
1 parent fb1be72 commit 21dc451

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/web/mod.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,23 @@ fn match_version(conn: &Connection, name: &str, version: Option<&str>) -> Option
170170
}
171171

172172
// Now try to match with semver
173-
let req_sem_ver = VersionReq::parse(&req_version).unwrap();
173+
let req_sem_ver = match VersionReq::parse(&req_version) {
174+
Ok(v) => v,
175+
Err(_) => return None,
176+
};;
174177

175178
// we need to sort versions first
176179
let versions_sem = {
177180
let mut versions_sem: Vec<Version> = Vec::new();
178181

179182
for version in &versions {
180-
versions_sem.push(Version::parse(&version).unwrap());
183+
// in theory a crate must always have a semver compatible version
184+
// but check result just in case
185+
let version = match Version::parse(&version) {
186+
Ok(v) => v,
187+
Err(_) => return None,
188+
};
189+
versions_sem.push(version);
181190
}
182191

183192
versions_sem.sort();

0 commit comments

Comments
 (0)