From 17dec92a4e9b41a92d6ecd15b73b2ba8a4b50402 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 1 Dec 2010 21:25:56 -0800 Subject: [PATCH] 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 . --- ChangeLog | 14 ++++++++++++++ lib/utimecmp.c | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) 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) { -- 2.30.2