1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 22:07:34 +00:00

LibIPC: Do not leak the Core::File fd by default

This prevents fd leaks when the user of the API forgets to pass
CloseAfterSending to IPC::File. Since we are calling leak_fd in the
constructor, we want it to also take care of closing.
This commit is contained in:
Sebastian Zaha 2023-07-10 15:52:26 +02:00 committed by Tim Flynn
parent 318a3a0822
commit 88872ca42d
3 changed files with 5 additions and 6 deletions

View file

@ -81,7 +81,7 @@ void ConnectionFromClient::request_file_handler(i32 request_id, i32 window_serve
dbgln("FileSystemAccessServer: Couldn't open {}, error {}", path, file.error());
async_handle_prompt_end(request_id, file.error().code(), Optional<IPC::File> {}, path);
} else {
async_handle_prompt_end(request_id, 0, IPC::File(*file.release_value(), IPC::File::CloseAfterSending), path);
async_handle_prompt_end(request_id, 0, IPC::File(*file.release_value()), path);
}
} else {
async_handle_prompt_end(request_id, EPERM, Optional<IPC::File> {}, path);
@ -138,7 +138,7 @@ void ConnectionFromClient::prompt_helper(i32 request_id, Optional<DeprecatedStri
m_approved_files.set(user_picked_file.value(), new_permissions);
async_handle_prompt_end(request_id, 0, IPC::File(*file.release_value(), IPC::File::CloseAfterSending), user_picked_file);
async_handle_prompt_end(request_id, 0, IPC::File(*file.release_value()), user_picked_file);
}
} else {
async_handle_prompt_end(request_id, ECANCELED, Optional<IPC::File> {}, Optional<DeprecatedString> {});