diff options
| author | 2023-07-10 23:06:15 +0000 | |
|---|---|---|
| committer | 2023-07-10 23:06:15 +0000 | |
| commit | a59822ced546803e54304d3645c04baf817aae4d (patch) | |
| tree | 6e62bde5a412429734e8869471af243cd80928fe | |
| parent | 7959e60afa461eab688a6317cf4b117253f0c3cb (diff) | |
| parent | a7cc759d0592619ca4d89a05b3e4034379f4af56 (diff) | |
Merge "Camera: Clear identity before access device policy manager" into main am: 6cc598239e am: 63827abeb6 am: fbad94fbde am: a7cc759d05
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2652179
Change-Id: I6947b80da9d5048b0cb515d57a224b4ffbfc7f6a
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.java | 24 |
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); } } }; |