Title: [136293] trunk/Source/WebCore
Revision
136293
Author
[email protected]
Date
2012-11-30 15:56:14 -0800 (Fri, 30 Nov 2012)

Log Message

Fix potential crash when canceling animations on renderers with no node
https://bugs.webkit.org/show_bug.cgi?id=103784

Reviewed by Dan Bernstein.

We could crash when tearing down RenderScrollbars because we hit
AnimationController::cancelAnimations() for a renderer with no node.
The assertion already check for a null node, but the line after
does not, so fix that.

I tried to make a test with animations/transitions on a custom scrollbar, but was not able
to get it to crash.

* page/animation/AnimationController.cpp:
(WebCore::AnimationController::cancelAnimations):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (136292 => 136293)


--- trunk/Source/WebCore/ChangeLog	2012-11-30 23:36:49 UTC (rev 136292)
+++ trunk/Source/WebCore/ChangeLog	2012-11-30 23:56:14 UTC (rev 136293)
@@ -1,3 +1,21 @@
+2012-11-30  Simon Fraser  <[email protected]>
+
+        Fix potential crash when canceling animations on renderers with no node
+        https://bugs.webkit.org/show_bug.cgi?id=103784
+
+        Reviewed by Dan Bernstein.
+
+        We could crash when tearing down RenderScrollbars because we hit
+        AnimationController::cancelAnimations() for a renderer with no node.
+        The assertion already check for a null node, but the line after
+        does not, so fix that.
+
+        I tried to make a test with animations/transitions on a custom scrollbar, but was not able
+        to get it to crash.
+
+        * page/animation/AnimationController.cpp:
+        (WebCore::AnimationController::cancelAnimations):
+
 2012-11-30  Tim Horton  <[email protected]>
 
         PluginDocument fires didFinishDocumentLoadForFrame upon receiving initial bytes instead of when load completes

Modified: trunk/Source/WebCore/page/animation/AnimationController.cpp (136292 => 136293)


--- trunk/Source/WebCore/page/animation/AnimationController.cpp	2012-11-30 23:36:49 UTC (rev 136292)
+++ trunk/Source/WebCore/page/animation/AnimationController.cpp	2012-11-30 23:56:14 UTC (rev 136293)
@@ -510,7 +510,8 @@
     if (m_data->clear(renderer)) {
         Node* node = renderer->node();
         ASSERT(!node || (node->document() && !node->document()->inPageCache()));
-        node->setNeedsStyleRecalc(SyntheticStyleChange);
+        if (node)
+            node->setNeedsStyleRecalc(SyntheticStyleChange);
     }
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to