From 05235abd91152757463a73975d8654ad5ac3fa5f Mon Sep 17 00:00:00 2001 From: chris west Date: Mon, 20 Jan 2020 07:48:15 -0800 Subject: [PATCH] check bounds, fix slice math --- src/menu.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/menu.rs b/src/menu.rs index 120371b..eaf0a23 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -93,7 +93,7 @@ impl Line { /// Get the URL for this line, if it's a link. pub fn url(&self, raw: &str) -> String { - if !self.typ.is_link() { + if !self.typ.is_link() || self.text_end >= self.end { return String::from(""); } @@ -894,11 +894,7 @@ pub fn parse_line(start: usize, raw: &str) -> Option { } let line = &raw[start..]; - let end = if let Some(i) = line.find('\n') { - i + start - } else { - line.len() - }; + let end = line.find('\n').unwrap_or_else(|| line.len()) + start; let line = &raw[start..end]; // constrain \t search let text_end = if let Some(i) = line.find('\t') { i + start