mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-13 13:02:28 +00:00
LibWeb: Don't crash when cloning a CDATASection node
This commit is contained in:
parent
cdfc7a92f7
commit
72ed62a560
Notes:
github-actions[bot]
2024-07-25 14:58:32 +00:00
Author: https://github.com/tcl3
Commit: 72ed62a560
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/798
Reviewed-by: https://github.com/AtkinsSJ ✅
Reviewed-by: https://github.com/trflynn89
3 changed files with 15 additions and 3 deletions
|
@ -978,12 +978,14 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<Node>> Node::clone_node(Document* document,
|
|||
// Set copy’s namespace, namespace prefix, local name, and value to those of node.
|
||||
auto& attr = static_cast<Attr&>(*this);
|
||||
copy = attr.clone(*document);
|
||||
} else if (is<Text>(this)) {
|
||||
}
|
||||
// NOTE: is<Text>() currently returns true only for text nodes, not for descendant types of Text.
|
||||
else if (is<Text>(this) || is<CDATASection>(this)) {
|
||||
// Text
|
||||
auto text = verify_cast<Text>(this);
|
||||
auto& text = static_cast<Text&>(*this);
|
||||
|
||||
// Set copy’s data to that of node.
|
||||
auto text_copy = heap().allocate<Text>(realm(), *document, text->data());
|
||||
auto text_copy = heap().allocate<Text>(realm(), *document, text.data());
|
||||
copy = move(text_copy);
|
||||
} else if (is<Comment>(this)) {
|
||||
// Comment
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue