Title: [261439] trunk/Source/WebCore
Revision
261439
Author
[email protected]
Date
2020-05-09 13:15:39 -0700 (Sat, 09 May 2020)

Log Message

Fix null-dereference in DocumentTimelinesController::updateAnimationsAndSendEvents
https://bugs.webkit.org/show_bug.cgi?id=211667

Reviewed by Antoine Quint.

* animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents): Add null
check before removing animationsToRemove, which may already have been removed
since any arbitrary change could occur while animations are firing.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (261438 => 261439)


--- trunk/Source/WebCore/ChangeLog	2020-05-09 16:07:49 UTC (rev 261438)
+++ trunk/Source/WebCore/ChangeLog	2020-05-09 20:15:39 UTC (rev 261439)
@@ -1,5 +1,17 @@
 2020-05-09  Darin Adler  <[email protected]>
 
+        Fix null-dereference in DocumentTimelinesController::updateAnimationsAndSendEvents
+        https://bugs.webkit.org/show_bug.cgi?id=211667
+
+        Reviewed by Antoine Quint.
+
+        * animation/DocumentTimelinesController.cpp:
+        (WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents): Add null
+        check before removing animationsToRemove, which may already have been removed
+        since any arbitrary change could occur while animations are firing.
+
+2020-05-09  Darin Adler  <[email protected]>
+
         Add missing null-check of page in ResourceLoader::loadDataURL
         https://bugs.webkit.org/show_bug.cgi?id=211589
         rdar://57213601

Modified: trunk/Source/WebCore/animation/DocumentTimelinesController.cpp (261438 => 261439)


--- trunk/Source/WebCore/animation/DocumentTimelinesController.cpp	2020-05-09 16:07:49 UTC (rev 261438)
+++ trunk/Source/WebCore/animation/DocumentTimelinesController.cpp	2020-05-09 20:15:39 UTC (rev 261439)
@@ -152,8 +152,10 @@
     for (auto& animation : animationsToRemove) {
         // An animation that was initially marked as irrelevant may have changed while we were sending events, so we run the same
         // check that we ran to add it to animationsToRemove in the first place.
-        if (!animation->isRelevant() && !animation->needsTick())
-            animation->timeline()->removeAnimation(*animation);
+        if (auto timeline = animation->timeline()) {
+            if (!animation->isRelevant() && !animation->needsTick())
+                timeline->removeAnimation(*animation);
+        }
     }
 
     // Now that animations that needed removal have been removed, let's update the list of completed transitions.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to