From: Stephan Bosch Date: Tue, 11 Dec 2018 19:54:09 +0000 (+0100) Subject: lib: file-lock: Never decrease the wait time counter in file_lock_wait_end(). X-Git-Tag: 2.3.8~210 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28278bb2cf071361ade83e7e949c95f58aa609eb;p=thirdparty%2Fdovecot%2Fcore.git lib: file-lock: Never decrease the wait time counter in file_lock_wait_end(). Prevents problems when time moves backwards. --- diff --git a/src/lib/file-lock.c b/src/lib/file-lock.c index b60fd22637..ab8a2d9b5e 100644 --- a/src/lib/file-lock.c +++ b/src/lib/file-lock.c @@ -524,6 +524,10 @@ void file_lock_wait_end(const char *lock_name) if (gettimeofday(&now, NULL) < 0) i_fatal("gettimeofday() failed: %m"); long long diff = timeval_diff_usecs(&now, &lock_wait_start); + if (diff < 0) { + /* time moved backwards */ + diff = 0; + } if (diff > file_lock_slow_warning_usecs) { if (file_lock_slow_warning_usecs < 0) file_lock_wait_init_warning();