Index: glibc-2.23/sysdeps/mach/hurd/adjtime.c =================================================================== --- glibc-2.23.orig/sysdeps/mach/hurd/adjtime.c +++ glibc-2.23/sysdeps/mach/hurd/adjtime.c @@ -28,16 +28,25 @@ __adjtime (const struct timeval *delta, { error_t err; mach_port_t hostpriv; + struct timeval dummy = {0, 0}; err = __get_privileged_ports (&hostpriv, NULL); if (err) return __hurd_fail (EPERM); - err = __host_adjust_time (hostpriv, - /* `time_value_t' and `struct timeval' are in - fact identical with the names changed. */ - *(time_value_t *) delta, - (time_value_t *) olddelta); + if (olddelta) + err = __host_adjust_time (hostpriv, + /* `time_value_t' and `struct timeval' are in + fact identical with the names changed. */ + *(time_value_t *) delta, + (time_value_t *) olddelta); + else + /* Handle the case when olddelta is NULL, see man adjtime(3) */ + err = __host_adjust_time (hostpriv, + /* `time_value_t' and `struct timeval' are in + fact identical with the names changed. */ + *(time_value_t *) delta, + (time_value_t *) &dummy); __mach_port_deallocate (__mach_task_self (), hostpriv); if (err)