From ea3d12e41cb9626e4ffe3b976dda98f5c5630306 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Sat, 26 Aug 2017 12:48:59 +0200 Subject: Snap: don't try to set up cameras with ids greater than MAX_NUM_CAM * fixes ArrayIndexOutOfBoundsException on setUpCameraOutputs Change-Id: I1565576b604bdcebea85d65f3c7a2b332292ed2d --- src/com/android/camera/CaptureModule.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 3766c8209..1e2ceb890 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -1768,7 +1768,17 @@ public class CaptureModule implements CameraModule, PhotoController, CameraManager manager = (CameraManager) mActivity.getSystemService(Context.CAMERA_SERVICE); try { String[] cameraIdList = manager.getCameraIdList(); - for (int i = 0; i < cameraIdList.length; i++) { + int cameraIdListLength = cameraIdList.length; + + if (cameraIdListLength > MAX_NUM_CAM) + Log.w(TAG, "Number of available cameras (" + cameraIdListLength + ") exceeds " + + "max supported cameras (" + MAX_NUM_CAM + ")"); + + for (int i = 0; i < cameraIdListLength; i++) { + if (i >= MAX_NUM_CAM) { + Log.w(TAG, "Skipping set up for camera with id " + i); + break; + } String cameraId = cameraIdList[i]; CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); -- cgit v1.2.3