Fix a logic error in hibernate.c

Closes bug 22245; bugfix on 0.0.9rc1, when bandwidth accounting was
first introduced.

Found by Andrey Karpov and reported at https://www.viva64.com/en/b/0507/
This commit is contained in:
Nick Mathewson 2017-05-15 11:43:18 -04:00
parent 5207e41ffe
commit a6514b8a20
2 changed files with 6 additions and 1 deletions

5
changes/bug22245 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (bandwidth accounting):
- Roll over monthly accounting at the configured hour and minute,
rather than always at 00:00.
Fixes bug 22245; bugfix on 0.0.9rc1.
Found by Andrey Karpov with PVS-Studio.

View File

@ -290,7 +290,7 @@ edge_of_accounting_period_containing(time_t now, int get_end)
case UNIT_MONTH: { case UNIT_MONTH: {
/* If this is before the Nth, we want the Nth of last month. */ /* If this is before the Nth, we want the Nth of last month. */
if (tm.tm_mday < cfg_start_day || if (tm.tm_mday < cfg_start_day ||
(tm.tm_mday < cfg_start_day && before)) { (tm.tm_mday == cfg_start_day && before)) {
--tm.tm_mon; --tm.tm_mon;
} }
/* Otherwise, the month is correct. */ /* Otherwise, the month is correct. */