summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_time.c
diff options
context:
space:
mode:
authorotto <otto@openbsd.org>2006-06-04 18:47:33 +0000
committerotto <otto@openbsd.org>2006-06-04 18:47:33 +0000
commit4f5783b3623729c69e6e9616fd4baf700e84110b (patch)
tree8ca0fd38ed6e555338de523148f26131943ca497 /sys/kern/kern_time.c
parentShrink VM_PHYSSEG_MAX to 1 on platforms where physical memory is contiguous (diff)
downloadwireguard-openbsd-4f5783b3623729c69e6e9616fd4baf700e84110b.tar.xz
wireguard-openbsd-4f5783b3623729c69e6e9616fd4baf700e84110b.zip
Allow any user to request the current adjustment; ok henning@ deraadt@
Diffstat (limited to 'sys/kern/kern_time.c')
-rw-r--r--sys/kern/kern_time.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c
index c8f2fa62e31..7bffe722027 100644
--- a/sys/kern/kern_time.c
+++ b/sys/kern/kern_time.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_time.c,v 1.54 2006/01/20 07:53:48 tedu Exp $ */
+/* $OpenBSD: kern_time.c,v 1.55 2006/06/04 18:47:33 otto Exp $ */
/* $NetBSD: kern_time.c,v 1.20 1996/02/18 11:57:06 fvdl Exp $ */
/*
@@ -385,6 +385,12 @@ sys_adjtime(struct proc *p, void *v, register_t *retval)
long ndelta, ntickdelta, odelta;
int s, error;
+ if (!SCARG(uap, delta)) {
+ s = splclock();
+ odelta = timedelta;
+ splx(s);
+ goto out;
+ }
if ((error = suser(p, 0)))
return (error);
if ((error = copyin((void *)SCARG(uap, delta), (void *)&atv,
@@ -432,6 +438,7 @@ sys_adjtime(struct proc *p, void *v, register_t *retval)
tickdelta = ntickdelta;
splx(s);
+out:
if (SCARG(uap, olddelta)) {
atv.tv_sec = odelta / 1000000;
atv.tv_usec = odelta % 1000000;