mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-14 07:02:54 +00:00
Kernel: Make UserOrKernelBuffer::for_user_buffer() return ErrorOr<T>
This simplifies EFAULT propagation with TRY(). :^)
This commit is contained in:
parent
b820ae2828
commit
f2c3a41a8f
Notes:
sideshowbarker
2024-07-18 00:53:53 +09:00
Author: https://github.com/awesomekling
Commit: f2c3a41a8f
7 changed files with 27 additions and 47 deletions
|
@ -26,18 +26,18 @@ public:
|
|||
return UserOrKernelBuffer(kernel_buffer);
|
||||
}
|
||||
|
||||
static Optional<UserOrKernelBuffer> for_user_buffer(u8* user_buffer, size_t size)
|
||||
static ErrorOr<UserOrKernelBuffer> for_user_buffer(u8* user_buffer, size_t size)
|
||||
{
|
||||
if (user_buffer && !Memory::is_user_range(VirtualAddress(user_buffer), size))
|
||||
return {};
|
||||
return Error::from_errno(EFAULT);
|
||||
return UserOrKernelBuffer(user_buffer);
|
||||
}
|
||||
|
||||
template<typename UserspaceType>
|
||||
static Optional<UserOrKernelBuffer> for_user_buffer(UserspaceType userspace, size_t size)
|
||||
static ErrorOr<UserOrKernelBuffer> for_user_buffer(UserspaceType userspace, size_t size)
|
||||
{
|
||||
if (!Memory::is_user_range(VirtualAddress(userspace.unsafe_userspace_ptr()), size))
|
||||
return {};
|
||||
return Error::from_errno(EFAULT);
|
||||
return UserOrKernelBuffer(const_cast<u8*>((const u8*)userspace.unsafe_userspace_ptr()));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue