]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: file-lock: Never decrease the wait time counter in file_lock_wait_end().
authorStephan Bosch <stephan.bosch@dovecot.fi>
Tue, 11 Dec 2018 19:54:09 +0000 (20:54 +0100)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 10 Sep 2019 07:01:46 +0000 (10:01 +0300)
Prevents problems when time moves backwards.

src/lib/file-lock.c

index b60fd226374921c8b082b323d689575ec374ff93..ab8a2d9b5e26a01b6fc13639005238c33e2891c2 100644 (file)
@@ -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();