1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00

basic/calendarspec: add check for repeat values that would overflow

https://oss-fuzz.com/v2/issue/4651449704251392/7004
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2018-03-19 09:21:02 +01:00
parent e4711004d6
commit e127f26b1a
3 changed files with 10 additions and 0 deletions

View File

@ -187,6 +187,8 @@ int calendar_spec_normalize(CalendarSpec *c) {
}
_pure_ static bool chain_valid(CalendarComponent *c, int from, int to, bool end_of_month) {
assert(to >= from);
if (!c)
return true;
@ -197,6 +199,10 @@ _pure_ static bool chain_valid(CalendarComponent *c, int from, int to, bool end_
if (c->start < from || c->start > to)
return false;
/* Avoid overly large values that could cause overflow */
if (c->repeat > to - from)
return false;
/*
* c->repeat must be short enough so at least one repetition may
* occur before the end of the interval. For dates scheduled

View File

@ -0,0 +1,3 @@
timer
[Timer]
OnCalendar=*-31/2147483640

View File

@ -37,4 +37,5 @@ fuzz_regression_tests = '''
fuzz-unit-file/oss-fuzz-6908
fuzz-unit-file/oss-fuzz-6897
fuzz-unit-file/oss-fuzz-6897-evverx
fuzz-unit-file/oss-fuzz-7004
'''.split()