]> git.proxmox.com Git - proxmox-backup.git/commitdiff
tools/systemd/parse_time: error out on invalid ranges
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 4 Sep 2020 12:33:29 +0000 (14:33 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 4 Sep 2020 13:28:48 +0000 (15:28 +0200)
if the range is reverse (bigger..smaller) we will never find a value,
so error out during parsing

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/tools/systemd/parse_time.rs

index 93657b21f993bcbc72816c57c53849ba28d418f7..051c4968699a38a99048edbe85124f45e5ba23b2 100644 (file)
@@ -145,6 +145,9 @@ fn parse_date_time_comp(max: usize) -> impl Fn(&str) -> IResult<&str, DateTimeVa
         let (i, value) = parse_time_comp(max)(i)?;
 
         if let (i, Some(end)) = opt(preceded(tag(".."), parse_time_comp(max)))(i)? {
+            if value > end {
+                return Err(parse_error(i, "range start is bigger than end"));
+            }
             return Ok((i, DateTimeValue::Range(value, end)))
         }