about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/unix/bsd/ftime.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/unix/bsd/ftime.c b/sysdeps/unix/bsd/ftime.c
index 9aa5af100c..187c24c1d3 100644
--- a/sysdeps/unix/bsd/ftime.c
+++ b/sysdeps/unix/bsd/ftime.c
@@ -30,7 +30,12 @@ ftime (timebuf)
     return -1;
 
   timebuf->time = tv.tv_sec;
-  timebuf->millitm = (tv.tv_usec + 999) / 1000;
+  timebuf->millitm = (tv.tv_usec + 500) / 1000;
+  if (timebuf->millitm == 1000)
+    {
+      ++timebuf->time;
+      timebuf->millitm = 0;
+    }
   timebuf->timezone = tz.tz_minuteswest;
   timebuf->dstflag = tz.tz_dsttime;
   return 0;