From f3df5354a5ddbeb5ec2e88f4f72cb7224430d618 Mon Sep 17 00:00:00 2001 From: Shen Lin Date: Fri, 23 Sep 2022 00:44:44 +0800 Subject: [PATCH] Fix potential NPE when callback remote animator This potential NPE can cause Launcher crash. In applyAnimationUnchecked(), sources is annotated with @Nullable so we need a null check before dispatching callbacks. Bug: 248274834 Test: atest Change-Id: I98b9b6cc9832745ed0ce6a85915dcedc63a5b9c8 --- services/core/java/com/android/server/wm/Task.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index bf5246f2339a2..e1ee045a0a87a 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3339,8 +3339,9 @@ class Task extends TaskFragment { ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "applyAnimationUnchecked, control: %s, task: %s, transit: %s", control, asTask(), AppTransition.appTransitionOldToString(transit)); + final int size = sources != null ? sources.size() : 0; control.addTaskToTargets(this, (type, anim) -> { - for (int i = 0; i < sources.size(); ++i) { + for (int i = 0; i < size; ++i) { sources.get(i).onAnimationFinished(type, anim); } });