From: Michael Olbrich Date: Wed, 13 Feb 2013 07:00:46 +0000 (+0100) Subject: ratelimit: fix off-by-one X-Git-Tag: v198~274 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1c00832624a146745c31ce5367330b1d2ca04088 ratelimit: fix off-by-one The current code might make sense during startup for service restart limiting: With burst=1 after starting num is 1, so the next ('first') restart is still accepted ( 1 <= 1). However, once interval has expired, num is 1 after the first restart, so the second restart is also accepted. This change is also useful in combination with watchdogs: With burst=1 and a very large interval the system can be restarted on the first failure. --- diff --git a/src/shared/ratelimit.c b/src/shared/ratelimit.c index 1054d52f9..01b62b7b3 100644 --- a/src/shared/ratelimit.c +++ b/src/shared/ratelimit.c @@ -46,7 +46,7 @@ bool ratelimit_test(RateLimit *r) { goto good; } - if (r->num <= r->burst) + if (r->num < r->burst) goto good; return false;