mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 12:05:00 +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
7 changed files with 27 additions and 47 deletions
|
@ -20,11 +20,9 @@ ErrorOr<FlatPtr> Process::sys$getrandom(Userspace<void*> buffer, size_t buffer_s
|
|||
if (buffer_size > NumericLimits<ssize_t>::max())
|
||||
return EINVAL;
|
||||
|
||||
auto data_buffer = UserOrKernelBuffer::for_user_buffer(buffer, buffer_size);
|
||||
if (!data_buffer.has_value())
|
||||
return EFAULT;
|
||||
auto data_buffer = TRY(UserOrKernelBuffer::for_user_buffer(buffer, buffer_size));
|
||||
|
||||
return TRY(data_buffer.value().write_buffered<1024>(buffer_size, [&](Bytes bytes) {
|
||||
return TRY(data_buffer.write_buffered<1024>(buffer_size, [&](Bytes bytes) {
|
||||
get_good_random_bytes(bytes);
|
||||
return bytes.size();
|
||||
}));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue