diff --git a/rslib/src/search/parser.rs b/rslib/src/search/parser.rs index e102070a2..74101ba56 100644 --- a/rslib/src/search/parser.rs +++ b/rslib/src/search/parser.rs @@ -279,11 +279,19 @@ fn parse_flag(s: &str) -> ParseResult> { } /// eg rated:3 or rated:10:2 +/// second arg must be between 1-4 fn parse_rated(val: &str) -> ParseResult> { let mut it = val.splitn(2, ':'); let days = it.next().unwrap().parse()?; let ease = match it.next() { - Some(v) => Some(v.parse()?), + Some(v) => { + let n: u8 = v.parse()?; + if n < 5 && n > 0 { + Some(n) + } else { + return Err(ParseError {}); + } + } None => None, };