Bug fix 77/156877/1 submit/tizen/20171020.101944
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 20 Oct 2017 10:10:49 +0000 (19:10 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Fri, 20 Oct 2017 10:10:49 +0000 (19:10 +0900)
User could start camera preview without camera privilege,
but it shouldn't and fixed.

[Version] 0.3.7
[Profile] Common
[Issue Type] Bug fix
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-4.0-unified_20171020.1]

Change-Id: I5abe20f8f06a11ad1ac52c6bf6cdf03b435d7c95
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/src/muse_recorder_dispatcher.c
packaging/mmsvc-recorder.spec

index 4a7febf..b8e2901 100644 (file)
@@ -36,6 +36,7 @@
 #define LOG_TAG "MUSED_RECORDER"
 #define KEY_LENGTH 32
 
+#define CAMERA_PRIVILEGE_NAME           "http://tizen.org/privilege/camera"
 #define MICROPHONE_FEATURE_NAME         "http://tizen.org/feature/microphone"
 #define RECORDER_PRIVILEGE_NAME         "http://tizen.org/privilege/recorder"
 #define RECORDER_DEVICE_STATE_KEY_AUDIO "device_state_recorder_audio"
@@ -739,6 +740,7 @@ int recorder_dispatcher_get_state(muse_module_h module)
 int recorder_dispatcher_prepare(muse_module_h module)
 {
        int ret = RECORDER_ERROR_NONE;
+       int client_fd = -1;
        muse_recorder_api_e api = MUSE_RECORDER_API_PREPARE;
        muse_recorder_api_class_e class = MUSE_RECORDER_API_CLASS_IMMEDIATE;
        muse_recorder_handle_s *muse_recorder = NULL;
@@ -751,6 +753,16 @@ int recorder_dispatcher_prepare(muse_module_h module)
                return MUSE_RECORDER_ERROR_NONE;
        }
 
+       if (muse_recorder->type == MUSE_RECORDER_TYPE_VIDEO) {
+               client_fd = muse_server_module_get_msg_fd(module);
+               if (!muse_server_security_check_cynara(client_fd, CAMERA_PRIVILEGE_NAME)) {
+                       LOGE("security(camera) check failed");
+                       ret = RECORDER_ERROR_PERMISSION_DENIED;
+                       muse_recorder_msg_return(api, class, ret, module);
+                       return MUSE_RECORDER_ERROR_INVALID;
+               }
+       }
+
        ret = legacy_recorder_prepare(muse_recorder->recorder_handle);
 
        muse_recorder_msg_return(api, class, ret, module);
@@ -799,7 +811,7 @@ int recorder_dispatcher_start(muse_module_h module)
        /* privilege check */
        client_fd = muse_server_module_get_msg_fd(module);
        if (!muse_server_security_check_cynara(client_fd, RECORDER_PRIVILEGE_NAME)) {
-               LOGE("security check failed");
+               LOGE("security(recorder) check failed");
                ret = RECORDER_ERROR_PERMISSION_DENIED;
                muse_recorder_msg_return(api, class, ret, module);
                return MUSE_RECORDER_ERROR_INVALID;
index cb6cd5e..ca28d8e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.3.6
+Version:    0.3.7
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0