From 75a193b7611bade31a150dfcc528b973e3d46231 Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Mon, 2 Nov 2020 16:18:29 -0300
Subject: [PATCH] linux: Allow adjtime with NULL argument [BZ #26833]

The adjtime interface allows return the amount of time remaining
from any previous adjustment that has not yet been completed by
passing a NULL as first argument.  This was introduced with y2038
support 0308077e3a.

Checked on i686-linux-gnu.

Reviewed-by: Lukasz Majewski <lukma@denx.de>
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=75a193b7611bade31a150dfcc528b973e3d46231]
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
---
 sysdeps/unix/sysv/linux/adjtime.c | 11 +++++---
 time/Makefile                     |  3 ++-
 time/tst-adjtime.c                | 44 +++++++++++++++++++++++++++++++
 3 files changed, 54 insertions(+), 4 deletions(-)
 create mode 100644 time/tst-adjtime.c

diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c
index 3f9a4ea2eb..6d1d1b6af2 100644
--- a/sysdeps/unix/sysv/linux/adjtime.c
+++ b/sysdeps/unix/sysv/linux/adjtime.c
@@ -68,11 +68,16 @@ libc_hidden_def (__adjtime64)
 int
 __adjtime (const struct timeval *itv, struct timeval *otv)
 {
-  struct __timeval64 itv64, otv64;
+  struct __timeval64 itv64, *pitv64 = NULL;
+  struct __timeval64 otv64;
   int retval;
 
-  itv64 = valid_timeval_to_timeval64 (*itv);
-  retval = __adjtime64 (&itv64, otv != NULL ? &otv64 : NULL);
+  if (itv != NULL)
+    {
+      itv64 = valid_timeval_to_timeval64 (*itv);
+      pitv64 = &itv64;
+    }
+  retval = __adjtime64 (pitv64, otv != NULL ? &otv64 : NULL);
   if (otv != NULL)
     *otv = valid_timeval64_to_timeval (otv64);
 
diff --git a/time/Makefile b/time/Makefile
index 26aa835166..f27a75a115 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -47,7 +47,8 @@ tests	:= test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
 	   tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
 	   tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \
 	   tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \
-	   tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1
+	   tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 \
+	   tst-adjtime
 
 include ../Rules
 
diff --git a/time/tst-adjtime.c b/time/tst-adjtime.c
new file mode 100644
index 0000000000..ae2b37cdab
--- /dev/null
+++ b/time/tst-adjtime.c
@@ -0,0 +1,44 @@
+/* Basic tests for adjtime.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <sys/time.h>
+#include <stdlib.h>
+
+#include <errno.h>
+#include <support/check.h>
+
+
+static int
+do_test (void)
+{
+  /* Check if the interface allows getting the amount of time remaining
+     from any previous adjustment that has not yet been completed.  This
+     is a non-privileged function of adjtime.  */
+  struct timeval tv;
+  int r = adjtime (NULL, &tv);
+  if (r == -1)
+    {
+      if (errno == ENOSYS)
+	FAIL_UNSUPPORTED ("adjtime unsupported");
+      FAIL_EXIT1 ("adjtime (NULL, ...) failed: %m");
+    }
+
+  return 0;
+}
+
+#include <support/test-driver.c>
