From 36d021812927bebd0324320a5990aa2e6abfba76 Mon Sep 17 00:00:00 2001 From: alfred Date: Tue, 7 Jan 2003 20:10:04 +0000 Subject: [PATCH] Use copyout to access user memory. Submittted by: pho MFC After: 2 days --- sys/kern/p1003_1b.c | 6 +++++- sys/posix4/p1003_1b.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) 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);