Loading services/camera/libcameraservice/CameraService.cpp +17 −17 Original line number Diff line number Diff line Loading @@ -1579,6 +1579,23 @@ Status CameraService::setTorchMode(const String16& cameraId, bool enabled, Status CameraService::notifySystemEvent(int32_t eventId, const std::vector<int32_t>& args) { const int pid = CameraThreadState::getCallingPid(); const int selfPid = getpid(); // Permission checks if (pid != selfPid) { // Ensure we're being called by system_server, or similar process with // permissions to notify the camera service about system events if (!checkCallingPermission( String16("android.permission.CAMERA_SEND_SYSTEM_EVENTS"))) { const int uid = CameraThreadState::getCallingUid(); ALOGE("Permission Denial: cannot send updates to camera service about system" " events from pid=%d, uid=%d", pid, uid); return STATUS_ERROR_FMT(ERROR_PERMISSION_DENIED, "No permission to send updates to camera service about system events from pid=%d, uid=%d", pid, uid); } } ATRACE_CALL(); switch(eventId) { Loading Loading @@ -1993,9 +2010,6 @@ void CameraService::logServiceError(const char* msg, int errorCode) { status_t CameraService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { const int pid = CameraThreadState::getCallingPid(); const int selfPid = getpid(); // Permission checks switch (code) { case SHELL_COMMAND_TRANSACTION: { Loading @@ -2022,20 +2036,6 @@ status_t CameraService::onTransact(uint32_t code, const Parcel& data, Parcel* re } return NO_ERROR; } case BnCameraService::NOTIFYSYSTEMEVENT: { if (pid != selfPid) { // Ensure we're being called by system_server, or similar process with // permissions to notify the camera service about system events if (!checkCallingPermission( String16("android.permission.CAMERA_SEND_SYSTEM_EVENTS"))) { const int uid = CameraThreadState::getCallingUid(); ALOGE("Permission Denial: cannot send updates to camera service about system" " events from pid=%d, uid=%d", pid, uid); return PERMISSION_DENIED; } } break; } } return BnCameraService::onTransact(code, data, reply, flags); Loading Loading
services/camera/libcameraservice/CameraService.cpp +17 −17 Original line number Diff line number Diff line Loading @@ -1579,6 +1579,23 @@ Status CameraService::setTorchMode(const String16& cameraId, bool enabled, Status CameraService::notifySystemEvent(int32_t eventId, const std::vector<int32_t>& args) { const int pid = CameraThreadState::getCallingPid(); const int selfPid = getpid(); // Permission checks if (pid != selfPid) { // Ensure we're being called by system_server, or similar process with // permissions to notify the camera service about system events if (!checkCallingPermission( String16("android.permission.CAMERA_SEND_SYSTEM_EVENTS"))) { const int uid = CameraThreadState::getCallingUid(); ALOGE("Permission Denial: cannot send updates to camera service about system" " events from pid=%d, uid=%d", pid, uid); return STATUS_ERROR_FMT(ERROR_PERMISSION_DENIED, "No permission to send updates to camera service about system events from pid=%d, uid=%d", pid, uid); } } ATRACE_CALL(); switch(eventId) { Loading Loading @@ -1993,9 +2010,6 @@ void CameraService::logServiceError(const char* msg, int errorCode) { status_t CameraService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { const int pid = CameraThreadState::getCallingPid(); const int selfPid = getpid(); // Permission checks switch (code) { case SHELL_COMMAND_TRANSACTION: { Loading @@ -2022,20 +2036,6 @@ status_t CameraService::onTransact(uint32_t code, const Parcel& data, Parcel* re } return NO_ERROR; } case BnCameraService::NOTIFYSYSTEMEVENT: { if (pid != selfPid) { // Ensure we're being called by system_server, or similar process with // permissions to notify the camera service about system events if (!checkCallingPermission( String16("android.permission.CAMERA_SEND_SYSTEM_EVENTS"))) { const int uid = CameraThreadState::getCallingUid(); ALOGE("Permission Denial: cannot send updates to camera service about system" " events from pid=%d, uid=%d", pid, uid); return PERMISSION_DENIED; } } break; } } return BnCameraService::onTransact(code, data, reply, flags); Loading