static int g_feature_enabled = -1;
+static bool g_privilege_allowed = false;
+
static cynara *p_cynara = NULL;
static pthread_mutex_t g_cynara_mutex = PTHREAD_MUTEX_INITIALIZER;
{
pthread_mutex_lock(&g_cynara_mutex);
- bool ret = true;
- ret = __check_privilege_initialize();
- if (false == ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] privilege initialize is failed");
- pthread_mutex_unlock(&g_cynara_mutex);
- return VC_ERROR_PERMISSION_DENIED;
- }
+ if (false == g_privilege_allowed) {
+ bool ret = true;
+ ret = __check_privilege_initialize();
+ if (false == ret) {
+ SLOG(LOG_ERROR, TAG_VCM, "[ERROR] privilege initialize is failed");
+ g_privilege_allowed = false;
+ pthread_mutex_unlock(&g_cynara_mutex);
+ return VC_ERROR_PERMISSION_DENIED;
+ }
- char uid[16];
- snprintf(uid, 16, "%d", getuid());
- ret = true;
- ret = __check_privilege(uid, VC_PRIVILEGE);
- if (false == ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Permission is denied(%s)(%s)", VC_PRIVILEGE, uid);
- __check_privilege_deinitialize();
- pthread_mutex_unlock(&g_cynara_mutex);
- return VC_ERROR_PERMISSION_DENIED;
- }
+ char uid[16];
+ snprintf(uid, 16, "%d", getuid());
+ ret = true;
+ ret = __check_privilege(uid, VC_PRIVILEGE);
+ if (false == ret) {
+ SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Permission is denied(%s)(%s)", VC_PRIVILEGE, uid);
+ __check_privilege_deinitialize();
+ g_privilege_allowed = false;
+ pthread_mutex_unlock(&g_cynara_mutex);
+ return VC_ERROR_PERMISSION_DENIED;
+ }
+
+ ret = true;
+ ret = __check_privilege(uid, VC_MGR_PRIVILEGE);
+ if (false == ret) {
+ SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Permission is denied(%s)(%s)", VC_MGR_PRIVILEGE, uid);
+ __check_privilege_deinitialize();
+ g_privilege_allowed = false;
+ pthread_mutex_unlock(&g_cynara_mutex);
+ return VC_ERROR_PERMISSION_DENIED;
+ }
- ret = true;
- ret = __check_privilege(uid, VC_MGR_PRIVILEGE);
- if (false == ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Permission is denied(%s)(%s)", VC_MGR_PRIVILEGE, uid);
__check_privilege_deinitialize();
- pthread_mutex_unlock(&g_cynara_mutex);
- return VC_ERROR_PERMISSION_DENIED;
}
- __check_privilege_deinitialize();
+ g_privilege_allowed = true;
pthread_mutex_unlock(&g_cynara_mutex);
return VC_ERROR_NONE;
}
#include "voice_control_key_defines.h"
static int g_feature_enabled = -1;
+static bool g_privilege_allowed = false;
static pthread_mutex_t g_cynara_mutex = PTHREAD_MUTEX_INITIALIZER;
static cynara *p_cynara = NULL;
{
pthread_mutex_lock(&g_cynara_mutex);
- bool ret = true;
- ret = __check_privilege_initialize();
- if (false == ret) {
- SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] privilege initialize is failed");
- pthread_mutex_unlock(&g_cynara_mutex);
- return VC_ERROR_PERMISSION_DENIED;
- }
+ if (false == g_privilege_allowed) {
+ bool ret = true;
+ ret = __check_privilege_initialize();
+ if (false == ret) {
+ SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] privilege initialize is failed");
+ g_privilege_allowed = false;
+ pthread_mutex_unlock(&g_cynara_mutex);
+ return VC_ERROR_PERMISSION_DENIED;
+ }
- char uid[16];
- snprintf(uid, 16, "%d", getuid());
- ret = true;
- ret = __check_privilege(uid, VC_PRIVILEGE);
- __check_privilege_deinitialize();
- if (false == ret) {
- SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] Permission is denied");
- pthread_mutex_unlock(&g_cynara_mutex);
- return VC_ERROR_PERMISSION_DENIED;
+ char uid[16];
+ snprintf(uid, 16, "%d", getuid());
+ ret = true;
+ ret = __check_privilege(uid, VC_PRIVILEGE);
+ __check_privilege_deinitialize();
+ if (false == ret) {
+ SLOG(LOG_ERROR, TAG_VCCMD, "[ERROR] Permission is denied");
+ g_privilege_allowed = false;
+ pthread_mutex_unlock(&g_cynara_mutex);
+ return VC_ERROR_PERMISSION_DENIED;
+ }
}
+ g_privilege_allowed = true;
pthread_mutex_unlock(&g_cynara_mutex);
return VC_ERROR_NONE;
}