1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:38:11 +00:00

Kernel+keymap+KeyboardMapper: New pledge for getkeymap

This commit is contained in:
Ben Wiederhake 2021-01-31 22:50:17 +01:00 committed by Andreas Kling
parent 272df54a3e
commit cbee0c26e1
4 changed files with 11 additions and 5 deletions

View file

@ -82,7 +82,8 @@ extern VirtualAddress g_return_to_ring3_from_signal_trampoline;
__ENUMERATE_PLEDGE_PROMISE(settime) \
__ENUMERATE_PLEDGE_PROMISE(sigaction) \
__ENUMERATE_PLEDGE_PROMISE(setkeymap) \
__ENUMERATE_PLEDGE_PROMISE(prot_exec)
__ENUMERATE_PLEDGE_PROMISE(prot_exec) \
__ENUMERATE_PLEDGE_PROMISE(getkeymap)
enum class Pledge : u32 {
#define __ENUMERATE_PLEDGE_PROMISE(x) x,

View file

@ -69,7 +69,7 @@ int Process::sys$setkeymap(Userspace<const Syscall::SC_setkeymap_params*> user_p
int Process::sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*> user_params)
{
REQUIRE_PROMISE(stdio);
REQUIRE_PROMISE(getkeymap);
Syscall::SC_getkeymap_params params;
if (!copy_from_user(&params, user_params))

View file

@ -40,14 +40,14 @@ int main(int argc, char** argv)
args_parser.add_positional_argument(path, "Keyboard character mapping file.", "file", Core::ArgsParser::Required::No);
args_parser.parse(argc, argv);
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd unix fattr", nullptr) < 0) {
if (pledge("stdio getkeymap thread rpath accept cpath wpath recvfd sendfd unix fattr", nullptr) < 0) {
perror("pledge");
return 1;
}
auto app = GUI::Application::construct(argc, argv);
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
if (pledge("stdio getkeymap thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
perror("pledge");
return 1;
}
@ -69,6 +69,11 @@ int main(int argc, char** argv)
keyboard_mapper_widget->load_from_system();
}
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
perror("pledge");
return 1;
}
// Actions
auto open_action = GUI::CommonActions::make_open_action(
[&](auto&) {

View file

@ -32,7 +32,7 @@
int main(int argc, char** argv)
{
if (pledge("stdio setkeymap rpath", nullptr) < 0) {
if (pledge("stdio setkeymap getkeymap rpath", nullptr) < 0) {
perror("pledge");
return 1;
}