[newlib-cygwin] Cygwin: POSIX timers: Fix timer values returned for unarmed timer

Corinna Vinschen corinna@sourceware.org
Sun Feb 24 09:13:00 GMT 2019


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=aeaa051f3bd2dd74f664eeba87c9f2140e0b178e

commit aeaa051f3bd2dd74f664eeba87c9f2140e0b178e
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Sun Feb 24 10:12:03 2019 +0100

    Cygwin: POSIX timers: Fix timer values returned for unarmed timer
    
    The "optimized" condition to recognize an unarmed timer was plain
    wrong.  Replace it by checking the stored it_value against 0.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/posix_timer.cc | 2 +-
 winsup/cygwin/release/3.0.2  | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/posix_timer.cc b/winsup/cygwin/posix_timer.cc
index a76ba06..0332cab 100644
--- a/winsup/cygwin/posix_timer.cc
+++ b/winsup/cygwin/posix_timer.cc
@@ -245,7 +245,7 @@ timer_tracker::gettime (itimerspec *curr_value, bool lock)
 	  return -EINVAL;
 	}
     }
-  if (!cancel_evt)
+  if (!time_spec.it_value.tv_sec && !time_spec.it_value.tv_nsec)
     memset (curr_value, 0, sizeof (*curr_value));
   else
     {
diff --git a/winsup/cygwin/release/3.0.2 b/winsup/cygwin/release/3.0.2
index 0f3f4f7..c1a18a9 100644
--- a/winsup/cygwin/release/3.0.2
+++ b/winsup/cygwin/release/3.0.2
@@ -18,3 +18,6 @@ Bug Fixes
 
 - Fix and speed up evaluation of group membership in seteuid.
   Addresses: Local testing.
+
+- Fix getitimer/timer_gettime values returned for unarmed timer.
+  Addresses: https://cygwin.com/ml/cygwin/2019-02/msg00395.html



More information about the Cygwin-cvs mailing list