sensord: add lock in permission_checker functions 98/70198/2
authorkibak.yoon <kibak.yoon@samsung.com>
Wed, 18 May 2016 11:48:42 +0000 (20:48 +0900)
committerMu-Woong Lee <muwoong.lee@samsung.com>
Thu, 19 May 2016 05:21:17 +0000 (22:21 -0700)
Change-Id: I1969e07d02482f44d6db810b3c33b17b4282d28d
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
src/server/permission_checker.cpp
src/server/permission_checker.h

index e2ed12e..e811217 100644 (file)
@@ -77,6 +77,8 @@ permission_checker& permission_checker::get_instance()
 
 void permission_checker::init()
 {
+       AUTOLOCK(m_mutex);
+
        m_permission_infos.push_back(std::make_shared<permission_info> (SENSOR_PERMISSION_STANDARD, false, ""));
        m_permission_infos.push_back(std::make_shared<permission_info> (SENSOR_PERMISSION_BIO, true, "http://tizen.org/privilege/healthinfo"));
 
@@ -96,6 +98,8 @@ void permission_checker::init()
 
 void permission_checker::deinit()
 {
+       AUTOLOCK(m_mutex);
+
        if (cynara_env)
                cynara_finish(cynara_env);
 
@@ -104,6 +108,8 @@ void permission_checker::deinit()
 
 int permission_checker::get_permission(int sock_fd)
 {
+       AUTOLOCK(m_mutex);
+
        int permission = SENSOR_PERMISSION_NONE;
 
        for (unsigned int i = 0; i < m_permission_infos.size(); ++i) {
index 53fa3b6..cf9f444 100644 (file)
 #ifndef _PERMISSION_CHECKER_H_
 #define _PERMISSION_CHECKER_H_
 
+#include <cmutex.h>
 #include <string>
 #include <vector>
 #include <memory>
 
 class permission_checker {
+public:
+       static permission_checker& get_instance();
+
+       int get_permission(int sock_fd);
+
 private:
        class permission_info {
                public:
@@ -49,13 +55,10 @@ private:
        void init();
        void deinit();
 
+private:
        permission_info_vector m_permission_infos;
        int m_permission_set;
-
-public:
-       static permission_checker& get_instance();
-
-       int get_permission(int sock_fd);
+       cmutex m_mutex;
 };
 
 #endif /* _PERMISSION_CHECKER_H_ */