1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:17:36 +00:00

LibWeb: Fix a blatant nullptr dereference in ReadableStreamGenericReader

This commit is contained in:
Matthew Olsson 2023-04-25 18:29:13 -07:00 committed by Andreas Kling
parent 9ee64b5694
commit 2b269d4a49
3 changed files with 12 additions and 3 deletions

View file

@ -26,9 +26,8 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Promise>> ReadableStreamGenericReaderMi
{
// 1. If this.[[stream]] is undefined, return a promise rejected with a TypeError exception.
if (!m_stream) {
auto& realm = stream()->realm();
auto exception = MUST_OR_THROW_OOM(JS::TypeError::create(realm, "No stream present to cancel"sv));
auto promise_capability = WebIDL::create_rejected_promise(realm, exception);
auto exception = MUST_OR_THROW_OOM(JS::TypeError::create(m_realm, "No stream present to cancel"sv));
auto promise_capability = WebIDL::create_rejected_promise(m_realm, exception);
return JS::NonnullGCPtr { verify_cast<JS::Promise>(*promise_capability->promise().ptr()) };
}
@ -37,6 +36,11 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<JS::Promise>> ReadableStreamGenericReaderMi
return JS::NonnullGCPtr { verify_cast<JS::Promise>(*promise_capability->promise().ptr()) };
}
ReadableStreamGenericReaderMixin::ReadableStreamGenericReaderMixin(JS::Realm& realm)
: m_realm(realm)
{
}
void ReadableStreamGenericReaderMixin::visit_edges(JS::Cell::Visitor& visitor)
{
visitor.visit(m_closed_promise);