diff --git a/Kernel/Syscalls/debug.cpp b/Kernel/Syscalls/debug.cpp index 9f17265148c..38bf5591f9f 100644 --- a/Kernel/Syscalls/debug.cpp +++ b/Kernel/Syscalls/debug.cpp @@ -28,10 +28,18 @@ KResultOr Process::sys$dbgputstr(Userspace characters, size_t if (size == 0) return 0; + if (size <= 1024) { + char buffer[1024]; + if (!copy_from_user(buffer, characters, size)) + return EFAULT; + dbgputstr(buffer, size); + return size; + } + auto result = try_copy_kstring_from_user(reinterpret_cast(characters.unsafe_userspace_ptr()), size); if (result.is_error()) return result.error(); - dbgputstr(reinterpret_cast(result.value()->characters()), size); + dbgputstr(result.value()->characters(), size); return size; }