From: Paul Eggert Date: Thu, 2 Dec 2010 05:25:56 +0000 (-0800) Subject: utimecmp: fine-grained src to nearby coarse-grained dest X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17dec92a4e9b41a92d6ecd15b73b2ba8a4b50402;p=pspp utimecmp: fine-grained src to nearby coarse-grained dest * lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set, and the source is on a file system with higher-resolution time stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does not work, and the time stamps are close together, the algorithm to determine the exact resolution from the read-back mtime was buggy: it had a "!=" where it should have had an "==". This bug has been in the code ever since it was introduced to gnulib. Problem reported by Dan Jacobson in . --- diff --git a/ChangeLog b/ChangeLog index d4eb684fc2..67e2977368 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2010-12-01 Paul Eggert + + utimecmp: fine-grained src to nearby coarse-grained dest + + * lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set, + and the source is on a file system with higher-resolution time + stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does + not work, and the time stamps are close together, the algorithm to + determine the exact resolution from the read-back mtime was buggy: + it had a "!=" where it should have had an "==". This bug has been + in the code ever since it was introduced to gnulib. + Problem reported by Dan Jacobson in + . + 2010-11-30 Bruno Haible strerror_r-posix: Fix autoconf test. diff --git a/lib/utimecmp.c b/lib/utimecmp.c index 63a0c9a822..8c3ca65d95 100644 --- a/lib/utimecmp.c +++ b/lib/utimecmp.c @@ -325,7 +325,7 @@ utimecmp (char const *dst_name, res = SYSCALL_RESOLUTION; - for (a /= res; a % 10 != 0; a /= 10) + for (a /= res; a % 10 == 0; a /= 10) { if (res == BILLION) {