Title: [188033] releases/WebKitGTK/webkit-2.8
Revision
188033
Author
carlo...@webkit.org
Date
2015-08-06 01:47:54 -0700 (Thu, 06 Aug 2015)

Log Message

Merge r188014 - Crash when removing children of a MathMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=147704
<rdar://problem/21940321>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When MathMLSelectElement::childrenChanged() is called after its
children have been removed, MathMLSelectElement calls
updateSelectedChild() which accesses m_selectedChild. However,
in this case, m_selectedChild is the previously selected child
and it may be destroyed as this point if it was removed. To avoid
this problem, MathMLSelectElement now keep a strong ref to the
currently selected element.

Test: mathml/maction-removeChild.html

* mathml/MathMLSelectElement.h:

LayoutTests:

Add layout test that reproduces the crash under guardmalloc.

* mathml/maction-removeChild-expected.txt: Added.
* mathml/maction-removeChild.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog (188032 => 188033)


--- releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog	2015-08-06 08:19:48 UTC (rev 188032)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog	2015-08-06 08:47:54 UTC (rev 188033)
@@ -1,3 +1,16 @@
+2015-08-05  Chris Dumez  <cdu...@apple.com>
+
+        Crash when removing children of a MathMLSelectElement
+        https://bugs.webkit.org/show_bug.cgi?id=147704
+        <rdar://problem/21940321>
+
+        Reviewed by Ryosuke Niwa.
+
+        Add layout test that reproduces the crash under guardmalloc.
+
+        * mathml/maction-removeChild-expected.txt: Added.
+        * mathml/maction-removeChild.html: Added.
+
 2015-07-28  Simon Fraser  <simon.fra...@apple.com>
 
         Animations sometimes fail to start

Added: releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild-expected.txt (0 => 188033)


--- releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild-expected.txt	2015-08-06 08:47:54 UTC (rev 188033)
@@ -0,0 +1,3 @@
+This test passes if it does not crash
+
+

Added: releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild.html (0 => 188033)


--- releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/mathml/maction-removeChild.html	2015-08-06 08:47:54 UTC (rev 188033)
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+  <body>
+    <p>This test passes if it does not crash</p>
+    <math>
+      <maction id="testSelect" actiontype="toggle" selection="2">
+        <mi>g</mi>
+        <mspace/>
+      </maction>
+    </math>
+    <script>
+      if (window.testRunner)
+        testRunner.dumpAsText();
+
+      var testSelect = document.getElementById("testSelect");
+      testSelect.innerHTML = "123.123.123";
+    </script>
+  </body>
+</html>

Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (188032 => 188033)


--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog	2015-08-06 08:19:48 UTC (rev 188032)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog	2015-08-06 08:47:54 UTC (rev 188033)
@@ -1,3 +1,23 @@
+2015-08-05  Chris Dumez  <cdu...@apple.com>
+
+        Crash when removing children of a MathMLSelectElement
+        https://bugs.webkit.org/show_bug.cgi?id=147704
+        <rdar://problem/21940321>
+
+        Reviewed by Ryosuke Niwa.
+
+        When MathMLSelectElement::childrenChanged() is called after its
+        children have been removed, MathMLSelectElement calls
+        updateSelectedChild() which accesses m_selectedChild. However,
+        in this case, m_selectedChild is the previously selected child
+        and it may be destroyed as this point if it was removed. To avoid
+        this problem, MathMLSelectElement now keep a strong ref to the
+        currently selected element.
+
+        Test: mathml/maction-removeChild.html
+
+        * mathml/MathMLSelectElement.h:
+
 2015-08-03  Brady Eidson  <beid...@apple.com>
 
         Crash when signing into twitter calling WebCore::DocumentLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&).

Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/mathml/MathMLSelectElement.h (188032 => 188033)


--- releases/WebKitGTK/webkit-2.8/Source/WebCore/mathml/MathMLSelectElement.h	2015-08-06 08:19:48 UTC (rev 188032)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/mathml/MathMLSelectElement.h	2015-08-06 08:47:54 UTC (rev 188033)
@@ -56,7 +56,7 @@
     Element* getSelectedSemanticsChild();
 
     void updateSelectedChild() override;
-    Element* m_selectedChild;
+    RefPtr<Element> m_selectedChild;
 };
 
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to