mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-11 08:50:37 +00:00
FileManager: Handle possible ByteBuffer allocation failure
Before this patch we created ByteBuffer with the help of the VERIFY macro that could cause a crash of FileManager in case of memory allocation failures. Now we propagate the error to a caller instead of using the `release_value_but_fixme_should_propagate_errors()` method.
This commit is contained in:
parent
c0542ed40b
commit
03107d4028
Notes:
sideshowbarker
2024-07-19 17:01:22 +09:00
Author: https://github.com/a-narsudinov 🔰 Commit: https://github.com/SerenityOS/serenity/commit/03107d40280 Pull-request: https://github.com/SerenityOS/serenity/pull/16552
1 changed files with 7 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2022, Alexander Narsudinov <a.narsudinov@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -71,7 +72,12 @@ FileOperationProgressWidget::FileOperationProgressWidget(FileOperation operation
|
|||
|
||||
m_notifier = Core::Notifier::construct(helper_pipe_fd, Core::Notifier::Read);
|
||||
m_notifier->on_ready_to_read = [this] {
|
||||
auto line_buffer = ByteBuffer::create_zeroed(1 * KiB).release_value_but_fixme_should_propagate_errors();
|
||||
auto line_buffer_or_error = ByteBuffer::create_zeroed(1 * KiB);
|
||||
if (line_buffer_or_error.is_error()) {
|
||||
did_error("Failed to allocate ByteBuffer for reading data."sv);
|
||||
return;
|
||||
}
|
||||
auto line_buffer = line_buffer_or_error.release_value();
|
||||
auto line_or_error = m_helper_pipe->read_line(line_buffer.bytes());
|
||||
if (line_or_error.is_error() || line_or_error.value().is_empty()) {
|
||||
did_error("Read from pipe returned null."sv);
|
||||
|
|
Loading…
Reference in a new issue