From b35608fb9048ba96bc0806c8b1d07feb3203cca1 Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Wed, 18 May 2016 20:48:42 +0900 Subject: [PATCH] sensord: add lock in permission_checker functions Change-Id: I1969e07d02482f44d6db810b3c33b17b4282d28d Signed-off-by: kibak.yoon --- src/server/permission_checker.cpp | 6 ++++++ src/server/permission_checker.h | 13 ++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/server/permission_checker.cpp b/src/server/permission_checker.cpp index e2ed12e..e811217 100644 --- a/src/server/permission_checker.cpp +++ b/src/server/permission_checker.cpp @@ -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 (SENSOR_PERMISSION_STANDARD, false, "")); m_permission_infos.push_back(std::make_shared (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) { diff --git a/src/server/permission_checker.h b/src/server/permission_checker.h index 53fa3b6..cf9f444 100644 --- a/src/server/permission_checker.h +++ b/src/server/permission_checker.h @@ -20,11 +20,17 @@ #ifndef _PERMISSION_CHECKER_H_ #define _PERMISSION_CHECKER_H_ +#include #include #include #include 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_ */ -- 2.7.4