diff --git a/sys/kern/p1003_1b.c b/sys/kern/p1003_1b.c index 7d312d7711db..26d3e66d0bda 100644 --- a/sys/kern/p1003_1b.c +++ b/sys/kern/p1003_1b.c @@ -306,6 +306,7 @@ int sched_rr_get_interval(struct thread *td, { int e; struct thread *targettd; + struct timespec timespec; struct proc *targetp; mtx_lock(&Giant); @@ -326,7 +327,10 @@ int sched_rr_get_interval(struct thread *td, PROC_UNLOCK(targetp); if (e == 0) { e = ksched_rr_get_interval(&td->td_retval[0], ksched, targettd, - uap->interval); + ×pec); + if (e == 0) + e = copyout(×pec, uap->interval, + sizeof(timespec)); } done2: mtx_unlock(&Giant); diff --git a/sys/posix4/p1003_1b.c b/sys/posix4/p1003_1b.c index 7d312d7711db..26d3e66d0bda 100644 --- a/sys/posix4/p1003_1b.c +++ b/sys/posix4/p1003_1b.c @@ -306,6 +306,7 @@ int sched_rr_get_interval(struct thread *td, { int e; struct thread *targettd; + struct timespec timespec; struct proc *targetp; mtx_lock(&Giant); @@ -326,7 +327,10 @@ int sched_rr_get_interval(struct thread *td, PROC_UNLOCK(targetp); if (e == 0) { e = ksched_rr_get_interval(&td->td_retval[0], ksched, targettd, - uap->interval); + ×pec); + if (e == 0) + e = copyout(×pec, uap->interval, + sizeof(timespec)); } done2: mtx_unlock(&Giant);