diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2017-08-26 12:48:59 +0200 |
---|---|---|
committer | Bruno Martins <bgcngm@gmail.com> | 2018-11-20 12:32:17 +0000 |
commit | b582d34c06a29df7bd2325f33b722b9961c0a68a (patch) | |
tree | c85e4173e083664e307ee69443f57653de5e51ba | |
parent | 6a28c6474e7080bde0726f93358c17b9b2656248 (diff) | |
download | android_packages_apps_Snap-b582d34c06a29df7bd2325f33b722b9961c0a68a.tar.gz android_packages_apps_Snap-b582d34c06a29df7bd2325f33b722b9961c0a68a.tar.bz2 android_packages_apps_Snap-b582d34c06a29df7bd2325f33b722b9961c0a68a.zip |
Snap: don't try to set up cameras with ids greater than MAX_NUM_CAM
* fixes ArrayIndexOutOfBoundsException on setUpCameraOutputs
Change-Id: I1565576b604bdcebea85d65f3c7a2b332292ed2d
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index b0883a175..feaf89eb9 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -2331,7 +2331,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); |