From c7d0d277549b6ca2a900b2c4322677052c62e402 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 15 May 2020 13:22:15 -0400 Subject: [PATCH] netdoc: get positions right in version parsing. --- tor-netdoc/src/version.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tor-netdoc/src/version.rs b/tor-netdoc/src/version.rs index 8fe5577b9..c53582776 100644 --- a/tor-netdoc/src/version.rs +++ b/tor-netdoc/src/version.rs @@ -113,18 +113,18 @@ impl FromStr for TorVersion { let status_part = parts.next(); let dev_part = parts.next(); if parts.next().is_some() { - return Err(Error::BadVersion(Pos::None)); + return Err(Error::BadVersion(Pos::at_end_of(dev_part.unwrap()))); } // Split the version on "." into 3 or 4 numbers. let vers: Result, _> = ver_part - .ok_or(Error::BadVersion(Pos::None))? + .ok_or_else(|| Error::BadVersion(Pos::at(s)))? .splitn(4, '.') .map(|v| v.parse::()) .collect(); - let vers = vers.map_err(|_| Error::BadVersion(Pos::None))?; + let vers = vers.map_err(|_| Error::BadVersion(Pos::at(s)))?; if vers.len() < 3 { - return Err(Error::BadVersion(Pos::None)); + return Err(Error::BadVersion(Pos::at(s))); } let major = vers[0]; let minor = vers[1]; @@ -141,8 +141,8 @@ impl FromStr for TorVersion { }; let dev = match (status_part, dev_part) { (_, Some("dev")) => true, - (_, Some(_)) => { - return Err(Error::BadVersion(Pos::None)); + (_, Some(s)) => { + return Err(Error::BadVersion(Pos::at(s))); } (Some("dev"), None) => true, (_, _) => false,