[glibc] hurd: Make setitimer clear interval on value being 0

Samuel Thibault via Glibc-cvs <[email protected]> Wed, 22 Jul 2026 20:26:51 +0000 (GMT)
Newsgroups gmane.comp.lib.glibc.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ffaa52a30eeff2bfb264bb17e4fa7b4c5c934bfa

commit ffaa52a30eeff2bfb264bb17e4fa7b4c5c934bfa
Author: Samuel Thibault <[email protected]>
Date:   Wed Jul 22 22:24:29 2026 +0200

    hurd: Make setitimer clear interval on value being 0
    
    posix says value being 0 means disabling a timer, regardless of the
    interval, so we should clear the interval in that case, so a further
    setitimer call does not see a non-zero interval.

Diff:
---
 sysdeps/mach/hurd/setitimer.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
index 265576e00e..d0bca89157 100644
--- a/sysdeps/mach/hurd/setitimer.c
+++ b/sysdeps/mach/hurd/setitimer.c
@@ -271,7 +271,10 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old)
     }
 
   /* Load the new itimer value.  */
-  _hurd_itimerval = newval;
+  if ((newval.it_value.tv_sec | newval.it_value.tv_usec) != 0)
+    _hurd_itimerval = newval;
+  else
+    _hurd_itimerval = (struct itimerval) { };
 
   if ((newval.it_value.tv_sec | newval.it_value.tv_usec) == 0)
     {