瀏覽代碼

Timers: Return an error when calling SetTimer with negative timeouts.

Subv 9 年之前
父節點
當前提交
0be77c3ae4
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/core/hle/svc.cpp

+ 5 - 0
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> timer = Kernel::g_handle_table.Get<Timer>(handle);
     if (timer == nullptr)
         return ERR_INVALID_HANDLE;