[pve-devel] [PATCH common] calendarevent: check range for start also without repetition
Dominik Csapak
d.csapak at proxmox.com
Thu Jun 1 14:17:10 CEST 2017
else an event like "61" never finishes when calculating the next event
also add regression tests for this and other range checks
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
src/PVE/CalendarEvent.pm | 1 +
test/calendar_event_test.pl | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/PVE/CalendarEvent.pm b/src/PVE/CalendarEvent.pm
index 2714841..a053f38 100644
--- a/src/PVE/CalendarEvent.pm
+++ b/src/PVE/CalendarEvent.pm
@@ -55,6 +55,7 @@ sub parse_calendar_event {
$$matchall_ref = 1;
} else {
$start = int($start);
+ die "value '$start' out of range\n" if $start >= $max;
$res_hash->{$start} = 1;
}
}
diff --git a/test/calendar_event_test.pl b/test/calendar_event_test.pl
index ec8fcc0..9c2bf46 100755
--- a/test/calendar_event_test.pl
+++ b/test/calendar_event_test.pl
@@ -132,7 +132,19 @@ my $tests = [
[20*60*60, 20*60*60 + 30*60],
[22*60*60 + 30*60, 44*60*60]
]
- ]
+ ],
+ [
+ '61',
+ { error => "value '61' out of range" },
+ ],
+ [
+ '*/61',
+ { error => "repetition '61' out of range" },
+ ],
+ [
+ '0..80',
+ { error => "range end '80' out of range" },
+ ],
];
foreach my $test (@$tests) {
--
2.11.0
More information about the pve-devel
mailing list