LibWeb: Do not store network errors as a StringView

This is very clearly a very dangerous API to have, and was causing
a crash on Linux as a result of a stack use-after-free when visiting
https://www.index.hr/.

Fixes #3901
This commit is contained in:
Shannon Booth 2025-04-02 20:51:45 +13:00 committed by Andreas Kling
parent 82a2ae99c8
commit a5df972055
Notes: github-actions[bot] 2025-04-02 12:54:16 +00:00
10 changed files with 44 additions and 50 deletions

View file

@ -1032,8 +1032,8 @@ WebIDL::ExceptionOr<void> HTMLMediaElement::fetch_resource(URL::URL const& url_r
// 4. If the result of verifying response given the current media resource and byteRange is false, then abort these steps.
// NOTE: We do this step before creating the updateMedia task so that we can invoke the failure callback.
if (!verify_response(response, byte_range)) {
auto error_message = response->network_error_message().value_or("Failed to fetch media resource"sv);
failure_callback(String::from_utf8(error_message).release_value_but_fixme_should_propagate_errors());
auto error_message = response->network_error_message().value_or("Failed to fetch media resource"_string);
failure_callback(error_message);
return;
}