From 10d59c5f6dcae2c745ee7e968801952c64a5c135 Mon Sep 17 00:00:00 2001 From: Yin-Chia Yeh Date: Wed, 1 Apr 2020 10:08:26 -0700 Subject: [PATCH] Camera: add proper null check for mRemoteDevice Test: camera CTS Bug: 139493594 Change-Id: Ifef9e30852056e54c5ed2c1427751a8c92c14469 --- .../android/hardware/camera2/impl/CameraDeviceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java index 7615b87c7102c..6d49add65c5b1 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -825,6 +825,7 @@ public class CameraDeviceImpl extends CameraDevice if (surface == null) throw new IllegalArgumentException("Surface is null"); synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); int streamId = -1; for (int i = 0; i < mConfiguredOutputs.size(); i++) { final List surfaces = mConfiguredOutputs.valueAt(i).getSurfaces(); @@ -847,6 +848,7 @@ public class CameraDeviceImpl extends CameraDevice maxCount); synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); int streamId = -1; for (int i = 0; i < mConfiguredOutputs.size(); i++) { if (surface == mConfiguredOutputs.valueAt(i).getSurface()) { @@ -865,6 +867,7 @@ public class CameraDeviceImpl extends CameraDevice public void updateOutputConfiguration(OutputConfiguration config) throws CameraAccessException { synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); int streamId = -1; for (int i = 0; i < mConfiguredOutputs.size(); i++) { if (config.getSurface() == mConfiguredOutputs.valueAt(i).getSurface()) { @@ -895,6 +898,7 @@ public class CameraDeviceImpl extends CameraDevice CameraOfflineSession ret; synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); if (mOfflineSessionImpl != null) { throw new IllegalStateException("Switch to offline mode already in progress"); } @@ -987,6 +991,7 @@ public class CameraDeviceImpl extends CameraDevice if (surface == null) throw new IllegalArgumentException("Surface is null"); synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); int streamId = -1; for (int i = 0; i < mConfiguredOutputs.size(); i++) { if (surface == mConfiguredOutputs.valueAt(i).getSurface()) { @@ -1009,6 +1014,8 @@ public class CameraDeviceImpl extends CameraDevice } synchronized(mInterfaceLock) { + checkIfCameraClosedOrInError(); + for (OutputConfiguration config : outputConfigs) { int streamId = -1; for (int i = 0; i < mConfiguredOutputs.size(); i++) {