mirror of
https://github.com/systemd/systemd.git
synced 2025-02-22 09:57:34 +03:00
shared/calendarspec: fix printing of second ranges which start with 0
0..3 is not the same as 0..infinity, we need to check both ends of the range. This logic was added in 3215e35c405278491f55fb486d349f132e93f516, and back then the field was called .value. .stop was added later and apparently wasn't taken into account here.
This commit is contained in:
parent
4f23345592
commit
3aff2ae9d5
@ -298,7 +298,7 @@ static void format_chain(FILE *f, int space, const CalendarComponent *c, bool us
|
||||
return;
|
||||
}
|
||||
|
||||
if (usec && c->start == 0 && c->repeat == USEC_PER_SEC && !c->next) {
|
||||
if (usec && c->start == 0 && c->stop < 0 && c->repeat == USEC_PER_SEC && !c->next) {
|
||||
fputc('*', f);
|
||||
return;
|
||||
}
|
||||
|
@ -162,6 +162,8 @@ TEST(calendar_spec_one) {
|
||||
test_one("00:00:1.0..3.8", "*-*-* 00:00:01..03");
|
||||
test_one("00:00:01..03", "*-*-* 00:00:01..03");
|
||||
test_one("00:00:01/2,02..03", "*-*-* 00:00:01/2,02..03");
|
||||
test_one("*:4,30:0..3", "*-*-* *:04,30:00..03");
|
||||
test_one("*:4,30:0/1", "*-*-* *:04,30:*");
|
||||
test_one("*-*~1 Utc", "*-*~01 00:00:00 UTC");
|
||||
test_one("*-*~05,3 ", "*-*~03,05 00:00:00");
|
||||
test_one("*-*~* 00:00:00", "*-*-* 00:00:00");
|
||||
@ -252,6 +254,9 @@ TEST(calendar_spec_from_string) {
|
||||
assert_se(calendar_spec_from_string("00:00:2300", &c) == -ERANGE);
|
||||
assert_se(calendar_spec_from_string("00:00:18446744073709551615", &c) == -ERANGE);
|
||||
assert_se(calendar_spec_from_string("@88588582097858858", &c) == -ERANGE);
|
||||
assert_se(calendar_spec_from_string("*:4,30:*,5", &c) == -EINVAL);
|
||||
assert_se(calendar_spec_from_string("*:4,30:5,*", &c) == -EINVAL);
|
||||
assert_se(calendar_spec_from_string("*:4,30:*\n", &c) == -EINVAL);
|
||||
}
|
||||
|
||||
DEFINE_TEST_MAIN(LOG_INFO);
|
||||
|
1
test/fuzz/fuzz-calendarspec/cant-parse-printed
Normal file
1
test/fuzz/fuzz-calendarspec/cant-parse-printed
Normal file
@ -0,0 +1 @@
|
||||
*:4,30:0..5,0
|
1
test/fuzz/fuzz-calendarspec/print-loses-spec
Normal file
1
test/fuzz/fuzz-calendarspec/print-loses-spec
Normal file
@ -0,0 +1 @@
|
||||
*:4,30:0..3
|
Loading…
x
Reference in New Issue
Block a user