From 4c4b7ef959aebf91871bb006c2605664de86c7fb Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Mon, 30 May 2022 17:29:55 -0700 Subject: [PATCH] Validate content overlay before removal Bug: 234158920 Test: atest --iteration 20 --no-bazel-mode \ PinnedStackTests#testLaunchTaskByAffinityMatchSingleTask Change-Id: I1ed848fcd742443a23ecaa17ba6b4fb8cdb061e2 --- .../Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java index c05654a740347..e624de6617372 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java @@ -1600,6 +1600,11 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, // Avoid double removal, which is fatal. return; } + if (surface == null || !surface.isValid()) { + ProtoLog.w(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, + "%s: trying to remove invalid content overlay (%s)", TAG, surface); + return; + } final SurfaceControl.Transaction tx = mSurfaceControlTransactionFactory.getTransaction(); tx.remove(surface); tx.apply();