summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Austin Borger <borgera@google.com> 2023-07-10 23:47:54 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-07-10 23:47:54 +0000
commit8c579da62ecf6201330853bb0e4e5654f0249e37 (patch)
tree6a785014c857b2828ff9f9ca2168f125a741fa9d
parent85816120bbbe2cc0e5c5e75e52b472fe237bb14a (diff)
parenta59822ced546803e54304d3645c04baf817aae4d (diff)
Merge "Camera: Clear identity before access device policy manager" into main am: 6cc598239e am: 63827abeb6 am: fbad94fbde am: a7cc759d05 am: a59822ced5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2652179 Change-Id: I0a3672f85bbea760fb9a425b1d075ff6b2c47210 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/camera/CameraServiceProxy.java24
1 files changed, 17 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java
index 0b04159194d1..f8f0088ac047 100644
--- a/services/core/java/com/android/server/camera/CameraServiceProxy.java
+++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java
@@ -613,16 +613,26 @@ public class CameraServiceProxy extends SystemService
@Override
public boolean isCameraDisabled(int userId) {
- DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
- if (dpm == null) {
- Slog.e(TAG, "Failed to get the device policy manager service");
+ if (Binder.getCallingUid() != Process.CAMERASERVER_UID) {
+ Slog.e(TAG, "Calling UID: " + Binder.getCallingUid()
+ + " doesn't match expected camera service UID!");
return false;
}
+ final long ident = Binder.clearCallingIdentity();
try {
- return dpm.getCameraDisabled(null, userId);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
+ DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
+ if (dpm == null) {
+ Slog.e(TAG, "Failed to get the device policy manager service");
+ return false;
+ }
+ try {
+ return dpm.getCameraDisabled(null, userId);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
}
};