This is a UPnP client library for Rust.

Fix: panic when parsing duration with one digit hours

authored by Hoshiiro Yukino and committed by GitHub 63aca534 49eb7e09

Changed files
+4 -4
src
+4 -4
src/parser.rs
··· 266 266 } 267 267 Ok(XmlEvent::Characters(duration_str)) => { 268 268 if in_duration { 269 - let duration_str = duration_str.replace(':', ""); 270 269 duration = Some(duration_str); 271 270 } 272 271 } ··· 275 274 } 276 275 277 276 let duration = duration.ok_or_else(|| anyhow!("Invalid response from device"))?; 278 - let hours = duration[0..2].parse::<u32>()?; 279 - let minutes = duration[2..4].parse::<u32>()?; 280 - let seconds = duration[4..6].parse::<u32>()?; 277 + let mut duration_iter = duration.split(":"); 278 + let hours = duration_iter.next().unwrap_or("0").parse::<u32>()?; 279 + let minutes = duration_iter.next().unwrap_or("0").parse::<u32>()?; 280 + let seconds = duration_iter.next().unwrap_or("0").parse::<u32>()?; 281 281 Ok(hours * 3600 + minutes * 60 + seconds) 282 282 } 283 283