Title: [148908] trunk/Source/WebCore
Revision
148908
Author
[email protected]
Date
2013-04-22 13:39:24 -0700 (Mon, 22 Apr 2013)

Log Message

Use-after-free in CompositeEditCommand::cloneParagraphUnderNewElement
https://bugs.webkit.org/show_bug.cgi?id=114911

Reviewed by Oliver Hunt.

Back ported https://src.chromium.org/viewvc/blink?revision=148680&view=revision.

* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (148907 => 148908)


--- trunk/Source/WebCore/ChangeLog	2013-04-22 20:29:58 UTC (rev 148907)
+++ trunk/Source/WebCore/ChangeLog	2013-04-22 20:39:24 UTC (rev 148908)
@@ -1,3 +1,15 @@
+2013-04-22  Ryosuke Niwa  <[email protected]>
+
+        Use-after-free in CompositeEditCommand::cloneParagraphUnderNewElement
+        https://bugs.webkit.org/show_bug.cgi?id=114911
+
+        Reviewed by Oliver Hunt.
+
+        Back ported https://src.chromium.org/viewvc/blink?revision=148680&view=revision.
+
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
+
 2013-04-22  Eric Carlson  <[email protected]>
 
         [Mac] "automatic" track selection should only select a track that matches user language

Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (148907 => 148908)


--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2013-04-22 20:29:58 UTC (rev 148907)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2013-04-22 20:39:24 UTC (rev 148908)
@@ -1037,8 +1037,8 @@
             outerNode = outerNode->parentNode();
         }
 
-        Node* startNode = start.deprecatedNode();
-        for (Node* node = NodeTraversal::nextSkippingChildren(startNode, outerNode.get()); node; node = NodeTraversal::nextSkippingChildren(node, outerNode.get())) {
+        RefPtr<Node> startNode = start.deprecatedNode();
+        for (RefPtr<Node> node = NodeTraversal::nextSkippingChildren(startNode.get(), outerNode.get()); node; node = NodeTraversal::nextSkippingChildren(node.get(), outerNode.get())) {
             // Move lastNode up in the tree as much as node was moved up in the
             // tree by NodeTraversal::nextSkippingChildren, so that the relative depth between
             // node and the original start node is maintained in the clone.
@@ -1050,7 +1050,7 @@
             RefPtr<Node> clonedNode = node->cloneNode(true);
             insertNodeAfter(clonedNode, lastNode);
             lastNode = clonedNode.release();
-            if (node == end.deprecatedNode() || end.deprecatedNode()->isDescendantOf(node))
+            if (node == end.deprecatedNode() || end.deprecatedNode()->isDescendantOf(node.get()))
                 break;
         }
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to