[PATCH] cygwin: timer_delete: Fix return value

Christian Franke Christian.Franke@t-online.de
Wed Oct 23 10:43:34 GMT 2024


Corinna Vinschen wrote:
> Hi Christian,
>
> On Oct 12 18:58, Christian Franke wrote:
>> Nobody checks the return value of functions which only free resources:
>> close(), ..., timer_delete(), ... :-)
> Sigh.  Apparently I broke it in 2019, see commit 229ea3f23c015.
>
>>  From 2d0c5b53bba2ded8d85ed725774498cffbb4f1de Mon Sep 17 00:00:00 2001
>> From: Christian Franke<christian.franke@t-online.de>
>> Date: Sat, 12 Oct 2024 18:47:00 +0200
>> Subject: [PATCH] cygwin: timer_delete: Fix return value
>>
>> timer_delete() always returned failure.  This issue has been
>> detected by 'stress-ng --hrtimers 1'.
>>
> Please add
>
>    Fixes: 229ea3f23c015 ("Cygwin: posix timers: reimplement using OS timer")
>
>> Signed-off-by: Christian Franke<christian.franke@t-online.de>
>> ---
>>   winsup/cygwin/posix_timer.cc | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/winsup/cygwin/posix_timer.cc b/winsup/cygwin/posix_timer.cc
>> index 9d832f201..a336b2bc2 100644
>> --- a/winsup/cygwin/posix_timer.cc
>> +++ b/winsup/cygwin/posix_timer.cc
>> @@ -530,6 +530,7 @@ timer_delete (timer_t timerid)
>>   	  __leave;
>>   	}
>>         delete in_tt;
>> +      ret = 0;
>>       }
>>     __except (EFAULT) {}
>>     __endtry
>> -- 
>> 2.45.1
>>
> Also add an entry for the release/3.5.5 file, please.

Attached.

-------------- next part --------------
From e43df3fb8ebd1413e7452ff5284cac0ddb02cb9b Mon Sep 17 00:00:00 2001
From: Christian Franke <christian.franke@t-online.de>
Date: Wed, 23 Oct 2024 12:24:06 +0200
Subject: [PATCH] Cygwin: timer_delete: Fix return value

timer_delete() always returned failure.  This issue has been
detected by 'stress-ng --hrtimers 1'.

Fixes: 229ea3f23c015 ("Cygwin: posix timers: reimplement using OS timer")
Signed-off-by: Christian Franke <christian.franke@t-online.de>
---
 winsup/cygwin/posix_timer.cc | 1 +
 winsup/cygwin/release/3.5.5  | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/winsup/cygwin/posix_timer.cc b/winsup/cygwin/posix_timer.cc
index 9d832f201..a336b2bc2 100644
--- a/winsup/cygwin/posix_timer.cc
+++ b/winsup/cygwin/posix_timer.cc
@@ -530,6 +530,7 @@ timer_delete (timer_t timerid)
 	  __leave;
 	}
       delete in_tt;
+      ret = 0;
     }
   __except (EFAULT) {}
   __endtry
diff --git a/winsup/cygwin/release/3.5.5 b/winsup/cygwin/release/3.5.5
index d01f31c60..bcc2c661b 100644
--- a/winsup/cygwin/release/3.5.5
+++ b/winsup/cygwin/release/3.5.5
@@ -10,3 +10,5 @@ Fixes:
 
 - Fix pread() and pwrite() EBADF error after fork().
   Addresses: https://sourceware.org/pipermail/cygwin/2024-September/256468.html
+
+- Fix timer_delete() return value which always indicated failure.
-- 
2.45.1



More information about the Cygwin-patches mailing list