mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-02 01:08:48 +00:00
Kernel: Pass name+length to set_mmap_name() and remove SmapDisabler
This commit is contained in:
parent
6af8392cf8
commit
33025a8049
Notes:
sideshowbarker
2024-07-19 10:18:45 +09:00
Author: https://github.com/awesomekling
Commit: 33025a8049
4 changed files with 27 additions and 8 deletions
|
@ -208,17 +208,24 @@ Region* Process::region_containing(const Range& range)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
int Process::sys$set_mmap_name(void* addr, size_t size, const char* name)
|
||||
int Process::sys$set_mmap_name(const Syscall::SC_set_mmap_name_params* user_params)
|
||||
{
|
||||
SmapDisabler disabler;
|
||||
if (!validate_read_str(name))
|
||||
if (!validate_read_typed(user_params))
|
||||
return -EFAULT;
|
||||
auto* region = region_from_range({ VirtualAddress((u32)addr), size });
|
||||
|
||||
Syscall::SC_set_mmap_name_params params;
|
||||
copy_from_user(¶ms, user_params, sizeof(params));
|
||||
|
||||
if (!validate_read(params.name, params.name_length))
|
||||
return -EFAULT;
|
||||
auto name = copy_string_from_user(params.name, params.name_length);
|
||||
|
||||
auto* region = region_from_range({ VirtualAddress((u32)params.addr), params.size });
|
||||
if (!region)
|
||||
return -EINVAL;
|
||||
if (!region->is_mmap())
|
||||
return -EPERM;
|
||||
region->set_name(String(name));
|
||||
region->set_name(name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue