Merge pull request #2855 from Lazy-Coder-03/kern_continue_debug_event_fix

kern: only check thread ids pointer when count is nonzero
This commit is contained in:
hexkyz
2026-09-24 01:22:03 +01:00
committed by GitHub

View File

@@ -141,11 +141,10 @@ namespace ams::kern::svc {
/* Verify that the number of thread ids is valid. */
R_UNLESS((0 <= num_thread_ids && num_thread_ids <= MaximumDebuggableThreadCount), svc::ResultOutOfRange());
R_UNLESS(GetCurrentProcess().GetPageTable().IsSafeUserPointer(KProcessAddress(user_thread_ids.GetUnsafePointer()), num_thread_ids * sizeof(uint64_t)), svc::ResultInvalidPointer());
/* Copy the threads from userspace. */
uint64_t thread_ids[MaximumDebuggableThreadCount];
if (num_thread_ids > 0) {
R_UNLESS(GetCurrentProcess().GetPageTable().IsSafeUserPointer(KProcessAddress(user_thread_ids.GetUnsafePointer()), num_thread_ids * sizeof(uint64_t)), svc::ResultInvalidPointer());
R_TRY(user_thread_ids.CopyArrayTo(thread_ids, num_thread_ids));
}