From f4309a7b2a3ca64686ff112b548725447f7b52e5 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Mon, 13 Mar 2023 08:56:17 +0000 Subject: [PATCH] Do not draw snapshot starting window if allocate graphic buffer fail. Preventing NPE crash. Bug: 271472871 Test: simulate GraphicBuffer#create fail in SnapshotDrawer, and verify no crash. Change-Id: If3f9ad38a9b256f59bfd96258e43decb896a3604 --- core/java/android/window/SnapshotDrawerUtils.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/java/android/window/SnapshotDrawerUtils.java b/core/java/android/window/SnapshotDrawerUtils.java index 071c20f25e5c2..1e6c1ff7a0f05 100644 --- a/core/java/android/window/SnapshotDrawerUtils.java +++ b/core/java/android/window/SnapshotDrawerUtils.java @@ -223,6 +223,11 @@ public class SnapshotDrawerUtils { PixelFormat.RGBA_8888, GraphicBuffer.USAGE_HW_TEXTURE | GraphicBuffer.USAGE_HW_COMPOSER | GraphicBuffer.USAGE_SW_WRITE_RARELY); + if (background == null) { + Log.e(TAG, "Unable to draw snapshot: failed to allocate graphic buffer for " + + mTitle); + return; + } // TODO: Support this on HardwareBuffer final Canvas c = background.lockCanvas(); drawBackgroundAndBars(c, frame);