From c8594ddf504109dc3c17baf9c2448469b28973e9 Mon Sep 17 00:00:00 2001 From: Alan Newberger Date: Fri, 31 Jul 2015 12:37:15 -0700 Subject: Check for zero length array returns permissions API may return zero length arrays, check before access. Bug: 22871531 Change-Id: I0ebd5feecb24f03fda0350a9ab42efa25127b3dc --- src/com/android/camera/PermissionsActivity.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/android/camera/PermissionsActivity.java b/src/com/android/camera/PermissionsActivity.java index a3981ef0f..3fda04abb 100644 --- a/src/com/android/camera/PermissionsActivity.java +++ b/src/com/android/camera/PermissionsActivity.java @@ -179,21 +179,24 @@ public class PermissionsActivity extends QuickActivity { true); if (mShouldRequestCameraPermission) { - if (grantResults[mIndexPermissionRequestCamera] == PackageManager.PERMISSION_GRANTED) { + if (grantResults.length > 0 && grantResults[mIndexPermissionRequestCamera] == + PackageManager.PERMISSION_GRANTED) { mFlagHasCameraPermission = true; } else { handlePermissionsFailure(); } } if (mShouldRequestMicrophonePermission) { - if (grantResults[mIndexPermissionRequestMicrophone] == PackageManager.PERMISSION_GRANTED) { + if (grantResults.length > 0 && grantResults[mIndexPermissionRequestMicrophone] == + PackageManager.PERMISSION_GRANTED) { mFlagHasMicrophonePermission = true; } else { handlePermissionsFailure(); } } if (mShouldRequestStoragePermission) { - if (grantResults[mIndexPermissionRequestStorage] == PackageManager.PERMISSION_GRANTED) { + if (grantResults.length > 0 && grantResults[mIndexPermissionRequestStorage] == + PackageManager.PERMISSION_GRANTED) { mFlagHasStoragePermission = true; } else { handlePermissionsFailure(); @@ -201,7 +204,8 @@ public class PermissionsActivity extends QuickActivity { } if (mShouldRequestLocationPermission) { - if (grantResults[mIndexPermissionRequestLocation] == PackageManager.PERMISSION_GRANTED) { + if (grantResults.length > 0 && grantResults[mIndexPermissionRequestLocation] == + PackageManager.PERMISSION_GRANTED) { // Do nothing } else { // Do nothing -- cgit v1.2.3