[newlib-cygwin/cygwin-3_5-branch] Cygwin: gettimeofday: allow tv NULL pointer

Corinna Vinschen corinna@sourceware.org
Tue Feb 20 11:33:09 GMT 2024


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

commit 12b85bec0e4db176cb5c6534f01bef62fb15c44b
Author:     Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Tue Feb 20 12:30:34 2024 +0100
Commit:     Corinna Vinschen <corinna@vinschen.de>
CommitDate: Tue Feb 20 12:30:51 2024 +0100

    Cygwin: gettimeofday: allow tv NULL pointer
    
    Add a missing check for the struct timeval pointer being NULL.
    
    Reported-by: 109224573 <109224573@qq.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/release/3.5.1 | 3 +++
 winsup/cygwin/times.cc      | 9 ++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/winsup/cygwin/release/3.5.1 b/winsup/cygwin/release/3.5.1
index 96d2ad32fa79..f3983c450dd9 100644
--- a/winsup/cygwin/release/3.5.1
+++ b/winsup/cygwin/release/3.5.1
@@ -20,3 +20,6 @@ Fixes:
 - Fix the problem that VMIN and VTIME does not work at all in console.
 
 - Fix a bug that cannot handle consoles more than 32, rather than 64.
+
+- Fix gettimeofday not checking for a NULL pointer
+  Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255473.html
diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc
index ddea061b8920..68f7a4502c8c 100644
--- a/winsup/cygwin/times.cc
+++ b/winsup/cygwin/times.cc
@@ -172,10 +172,13 @@ gettimeofday (struct timeval *__restrict tv, void *__restrict tzvp)
   static bool tzflag;
   LONGLONG now = get_clock (CLOCK_REALTIME)->usecs ();
 
-  tv->tv_sec = now / USPERSEC;
-  tv->tv_usec = now % USPERSEC;
+  if (tv)
+    {
+      tv->tv_sec = now / USPERSEC;
+      tv->tv_usec = now % USPERSEC;
+    }
 
-  if (tz != NULL)
+  if (tz)
     {
       if (!tzflag)
 	{


More information about the Cygwin-cvs mailing list