From d4b8d2179f17a261b348b8a38cbc5278f8b4d45d Mon Sep 17 00:00:00 2001 From: Shik Chen Date: Thu, 25 Oct 2018 18:00:27 +0800 Subject: [PATCH] Camera: Fix a crash in removeCamera() mCameraInfoMap is a KeyedVector, we should use .valueFor() instead of operator[] to get the value from a key. Bug: 118364955 Bug: 118359878 Bug: 77833131 Test: Plug and unplug the external camera 10+ times. Change-Id: Ibf48e5a78b16bdeba08b02242379eaf571fc76cb --- camera/common/1.0/default/CameraModule.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/camera/common/1.0/default/CameraModule.cpp b/camera/common/1.0/default/CameraModule.cpp index 392ebbc237..9c2b02ba0c 100644 --- a/camera/common/1.0/default/CameraModule.cpp +++ b/camera/common/1.0/default/CameraModule.cpp @@ -466,8 +466,8 @@ status_t CameraModule::filterOpenErrorCode(status_t err) { } void CameraModule::removeCamera(int cameraId) { - free_camera_metadata( - const_cast(mCameraInfoMap[cameraId].static_camera_characteristics)); + free_camera_metadata(const_cast( + mCameraInfoMap.valueFor(cameraId).static_camera_characteristics)); mCameraInfoMap.removeItem(cameraId); mDeviceVersionMap.removeItem(cameraId); }