mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-22 09:19:03 +00:00
LibWeb: Add some extra browsing context null checks
I saw a suspicious null dereference in check_if_access_between_two_browsing_contexts_should_be_reported(), but I have no idea how to reproduce it. Still, it seems harmless to paper over it with a FIXME debug log.
This commit is contained in:
@@ -35,12 +35,20 @@ void check_if_access_between_two_browsing_contexts_should_be_reported(
|
|||||||
auto accessor_accessed_relationship = AccessorAccessedRelationship::None;
|
auto accessor_accessed_relationship = AccessorAccessedRelationship::None;
|
||||||
|
|
||||||
// 5. If accessed's top-level browsing context's opener browsing context is accessor or an ancestor of accessor, then set accessorAccessedRelationship to accessor is opener.
|
// 5. If accessed's top-level browsing context's opener browsing context is accessor or an ancestor of accessor, then set accessorAccessedRelationship to accessor is opener.
|
||||||
if (auto opener = accessed->top_level_browsing_context()->opener_browsing_context(); opener && (opener == &accessor || opener->is_ancestor_of(accessor)))
|
if (auto accessed_top_level_browsing_context = accessed->top_level_browsing_context()) {
|
||||||
accessor_accessed_relationship = AccessorAccessedRelationship::AccessorIsOpener;
|
if (auto opener = accessed_top_level_browsing_context->opener_browsing_context(); opener && (opener == &accessor || opener->is_ancestor_of(accessor)))
|
||||||
|
accessor_accessed_relationship = AccessorAccessedRelationship::AccessorIsOpener;
|
||||||
|
} else {
|
||||||
|
dbgln("FIXME: accessed's top-level browsing context is null in check_if_access_between_two_browsing_contexts_should_be_reported()");
|
||||||
|
}
|
||||||
|
|
||||||
// 6. If accessor's top-level browsing context's opener browsing context is accessed or an ancestor of accessed, then set accessorAccessedRelationship to accessor is openee.
|
// 6. If accessor's top-level browsing context's opener browsing context is accessed or an ancestor of accessed, then set accessorAccessedRelationship to accessor is openee.
|
||||||
if (auto opener = accessor.top_level_browsing_context()->opener_browsing_context(); opener && (opener == accessed || opener->is_ancestor_of(*accessed)))
|
if (auto accessor_top_level_browsing_context = accessor.top_level_browsing_context()) {
|
||||||
accessor_accessed_relationship = AccessorAccessedRelationship::AccessorIsOpenee;
|
if (auto opener = accessor_top_level_browsing_context->opener_browsing_context(); opener && (opener == accessed || opener->is_ancestor_of(*accessed)))
|
||||||
|
accessor_accessed_relationship = AccessorAccessedRelationship::AccessorIsOpenee;
|
||||||
|
} else {
|
||||||
|
dbgln("FIXME: accessor's top-level browsing context is null in check_if_access_between_two_browsing_contexts_should_be_reported()");
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: 7. Queue violation reports for accesses, given accessorAccessedRelationship, accessor's top-level browsing context's active document's cross-origin opener policy, accessed's top-level browsing context's active document's cross-origin opener policy, accessor's active document's URL, accessed's active document's URL, accessor's top-level browsing context's initial URL, accessed's top-level browsing context's initial URL, accessor's active document's origin, accessed's active document's origin, accessor's top-level browsing context's opener origin at creation, accessed's top-level browsing context's opener origin at creation, accessor's top-level browsing context's active document's referrer, accessed's top-level browsing context's active document's referrer, P, and environment.
|
// FIXME: 7. Queue violation reports for accesses, given accessorAccessedRelationship, accessor's top-level browsing context's active document's cross-origin opener policy, accessed's top-level browsing context's active document's cross-origin opener policy, accessor's active document's URL, accessed's active document's URL, accessor's top-level browsing context's initial URL, accessed's top-level browsing context's initial URL, accessor's active document's origin, accessed's active document's origin, accessor's top-level browsing context's opener origin at creation, accessed's top-level browsing context's opener origin at creation, accessor's top-level browsing context's active document's referrer, accessed's top-level browsing context's active document's referrer, P, and environment.
|
||||||
(void)accessor;
|
(void)accessor;
|
||||||
|
|||||||
Reference in New Issue
Block a user