diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 96db39ad94..1baa80671b 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -837,6 +837,11 @@ static ResultCode SetTimer(Kernel::Handle handle, s64 initial, s64 interval) { LOG_TRACE(Kernel_SVC, "called timer=0x%08X", handle); + if (initial < 0 || interval < 0) { + return ResultCode(ErrorDescription::OutOfRange, ErrorModule::Kernel, + ErrorSummary::InvalidArgument, ErrorLevel::Permanent); + } + SharedPtr timer = Kernel::g_handle_table.Get(handle); if (timer == nullptr) return ERR_INVALID_HANDLE;