add routine for security check 06/49406/1 accepted/tizen/mobile/20151014.092800 accepted/tizen/tv/20151014.092824 accepted/tizen/wearable/20151014.092831 submit/tizen/20151014.050059
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 13 Oct 2015 05:21:02 +0000 (14:21 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 13 Oct 2015 05:21:02 +0000 (14:21 +0900)
Change-Id: Iacc12ddaf0832e90f258736244c6874f4071926c
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/src/muse_camera_dispatcher.c [changed mode: 0755->0644]
packaging/mmsvc-camera.spec

old mode 100755 (executable)
new mode 100644 (file)
index 45a2240..b186db3
 #include <stdio.h>
 #include <dlog.h>
 #include "legacy_camera.h"
+#include "legacy_camera_internal.h"
 #include "muse_camera_msg.h"
 #include "muse_camera.h"
-#include "muse_core.h"
-#include "muse_core_ipc.h"
-#include "mm_types.h"
-#include "legacy_camera_internal.h"
+#include <muse_core.h>
+#include <muse_core_ipc.h>
+#include <mm_types.h>
+#include <muse_core_security.h>
 
 #ifdef LOG_TAG
 #undef LOG_TAG
@@ -36,6 +37,8 @@
 #define LOG_TAG "MUSED_CAMERA"
 #define KEY_NUM 9527
 
+#define CAMERA_PRIVILEGE_NAME "http://tizen.org/privilege/camera"
+
 
 void _camera_dispatcher_callback_supported_theater_mode(int param, void *user_data)
 {
@@ -441,18 +444,32 @@ void _camera_dispatcher_hdr_progress_cb(int percent, void *user_data)
        return;
 }
 
+
 int camera_dispatcher_create(muse_module_h module)
 {
        int ret = CAMERA_ERROR_NONE;
        int device_type;
+       int client_fd = -1;
        intptr_t handle;
        muse_camera_info_s *camera_data;
        tbm_bufmgr bufmgr;
        camera_h camera;
        muse_camera_api_e api = MUSE_CAMERA_API_CREATE;
+
        muse_camera_msg_get(device_type, muse_core_client_get_msg(module));
+
+       /* privilege check */
+       client_fd = muse_core_client_get_msg_fd(module);
+       if (!muse_core_security_check_cynara(client_fd, CAMERA_PRIVILEGE_NAME)) {
+               LOGE("security check failed");
+               ret = CAMERA_ERROR_PERMISSION_DENIED;
+               muse_camera_msg_return(api, ret, module);
+               return MUSE_CAMERA_ERROR_NONE;
+       }
+
        ret = legacy_camera_create((camera_device_e)device_type, &camera);
        handle = (intptr_t)camera;
+
        LOGD("device_type : %d, handle : 0x%x, ret : 0x%x", device_type, handle, ret);
 
        if (ret == CAMERA_ERROR_NONE) {
index bcc2300..2a8bbff 100644 (file)
@@ -3,8 +3,8 @@
 
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.4
-Release:    1
+Version:    0.2.5
+Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz