Page MenuHomeFreeBSD

D24409.diff
No OneTemporary

D24409.diff

Index: head/sys/compat/freebsd32/freebsd32_misc.c
===================================================================
--- head/sys/compat/freebsd32/freebsd32_misc.c
+++ head/sys/compat/freebsd32/freebsd32_misc.c
@@ -2651,7 +2651,7 @@
{
struct timespec32 rmt32, rqt32;
struct timespec rmt, rqt;
- int error;
+ int error, error2;
error = copyin(ua_rqtp, &rqt32, sizeof(rqt32));
if (error)
@@ -2660,18 +2660,13 @@
CP(rqt32, rqt, tv_sec);
CP(rqt32, rqt, tv_nsec);
- if (ua_rmtp != NULL && (flags & TIMER_ABSTIME) == 0 &&
- !useracc(ua_rmtp, sizeof(rmt32), VM_PROT_WRITE))
- return (EFAULT);
error = kern_clock_nanosleep(td, clock_id, flags, &rqt, &rmt);
if (error == EINTR && ua_rmtp != NULL && (flags & TIMER_ABSTIME) == 0) {
- int error2;
-
CP(rmt, rmt32, tv_sec);
CP(rmt, rmt32, tv_nsec);
error2 = copyout(&rmt32, ua_rmtp, sizeof(rmt32));
- if (error2)
+ if (error2 != 0)
error = error2;
}
return (error);
Index: head/sys/kern/kern_time.c
===================================================================
--- head/sys/kern/kern_time.c
+++ head/sys/kern/kern_time.c
@@ -625,20 +625,15 @@
const struct timespec *ua_rqtp, struct timespec *ua_rmtp)
{
struct timespec rmt, rqt;
- int error;
+ int error, error2;
error = copyin(ua_rqtp, &rqt, sizeof(rqt));
if (error)
return (error);
- if (ua_rmtp != NULL && (flags & TIMER_ABSTIME) == 0 &&
- !useracc(ua_rmtp, sizeof(rmt), VM_PROT_WRITE))
- return (EFAULT);
error = kern_clock_nanosleep(td, clock_id, flags, &rqt, &rmt);
if (error == EINTR && ua_rmtp != NULL && (flags & TIMER_ABSTIME) == 0) {
- int error2;
-
error2 = copyout(&rmt, ua_rmtp, sizeof(rmt));
- if (error2)
+ if (error2 != 0)
error = error2;
}
return (error);

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 27, 8:38 PM (11 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32238900
Default Alt Text
D24409.diff (1 KB)

Event Timeline