One of the compat32 functions was copying in a raw timespec, instead of
a 32-bit one. This can cause weird timeout issues, as the copying reads garbage from the user. Code by: Deepak Veliath <deepak dot veliath at isilon dot com> MFC after: 1 week
This commit is contained in:
parent
2d843e7d34
commit
e0f389c8d3
@ -3411,8 +3411,7 @@ __umtx_op_rw_rdlock_compat32(struct thread *td, struct _umtx_op_args *uap)
|
||||
if (uap->uaddr2 == NULL) {
|
||||
error = do_rw_rdlock(td, uap->obj, uap->val, 0);
|
||||
} else {
|
||||
error = copyin(uap->uaddr2, &timeout,
|
||||
sizeof(timeout));
|
||||
error = copyin_timeout32(uap->uaddr2, &timeout);
|
||||
if (error != 0)
|
||||
return (error);
|
||||
if (timeout.tv_nsec >= 1000000000 ||
|
||||
|
Loading…
Reference in New Issue
Block a user