mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-02-02 04:25:08 +00:00
x64/Signals: Add EFAULT checks
This commit is contained in:
parent
7a490a3811
commit
3459369c6e
@ -25,6 +25,8 @@ void RegisterSignals(FEX::HLE::SyscallHandler* Handler) {
|
||||
if (sigsetsize != 8) {
|
||||
return -EINVAL;
|
||||
}
|
||||
FaultSafeUserMemAccess::VerifyIsReadableOrNull(act, sizeof(GuestSigAction));
|
||||
FaultSafeUserMemAccess::VerifyIsWritableOrNull(oldact, sizeof(GuestSigAction));
|
||||
|
||||
return FEX::HLE::_SyscallHandler->GetSignalDelegator()->RegisterGuestSignalHandler(signum, act, oldact);
|
||||
});
|
||||
@ -32,6 +34,9 @@ void RegisterSignals(FEX::HLE::SyscallHandler* Handler) {
|
||||
REGISTER_SYSCALL_IMPL_X64(
|
||||
rt_sigtimedwait,
|
||||
[](FEXCore::Core::CpuStateFrame* Frame, uint64_t* set, siginfo_t* info, const struct timespec* timeout, size_t sigsetsize) -> uint64_t {
|
||||
FaultSafeUserMemAccess::VerifyIsReadable(set, sizeof(sigsetsize));
|
||||
FaultSafeUserMemAccess::VerifyIsWritableOrNull(info, sizeof(siginfo_t));
|
||||
FaultSafeUserMemAccess::VerifyIsReadableOrNull(timeout, sizeof(timespec));
|
||||
return FEX::HLE::_SyscallHandler->GetSignalDelegator()->GuestSigTimedWait(set, info, timeout, sigsetsize);
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user