Merge "Camera: Clear identity before access device policy manager" into main am: 6cc598239e am: 63827abeb6 am: fbad94fbde

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2652179

Change-Id: Ia3771e1c57332ffff07dc588c3b408c8dd8d250c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Austin Borger
2023-07-10 22:24:00 +00:00
committed by Automerger Merge Worker

View File

@@ -613,16 +613,26 @@ public class CameraServiceProxy extends SystemService
@Override @Override
public boolean isCameraDisabled(int userId) { public boolean isCameraDisabled(int userId) {
DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class); if (Binder.getCallingUid() != Process.CAMERASERVER_UID) {
if (dpm == null) { Slog.e(TAG, "Calling UID: " + Binder.getCallingUid()
Slog.e(TAG, "Failed to get the device policy manager service"); + " doesn't match expected camera service UID!");
return false; return false;
} }
final long ident = Binder.clearCallingIdentity();
try { try {
return dpm.getCameraDisabled(null, userId); DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
} catch (Exception e) { if (dpm == null) {
e.printStackTrace(); Slog.e(TAG, "Failed to get the device policy manager service");
return false; return false;
}
try {
return dpm.getCameraDisabled(null, userId);
} catch (Exception e) {
e.printStackTrace();
return false;
}
} finally {
Binder.restoreCallingIdentity(ident);
} }
} }
}; };