BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(cynara-creds-self)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(ecore)
BuildRequires: pkgconfig(eina)
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <system_info.h>
#include "vc_elm_main.h"
#include <voice_control_elm.h>
static int __check_privilege(const char* uid, const char * privilege)
{
- FILE *fp = NULL;
- char label_path[1024] = "/proc/self/attr/current";
- char smack_label[1024] = {'\0',};
+ char *client_identification = NULL;
+ char *session = NULL;
+ int ret;
if (!p_cynara) {
return false;
}
- fp = fopen(label_path, "r");
- if (fp != NULL) {
- if (0 >= fread(smack_label, 1, sizeof(smack_label), fp))
- VC_ELM_LOG_ERR("[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ VC_ELM_LOG_ERR("Failed to get client.");
+ return false;
}
- pid_t pid = getpid();
- char *session = cynara_session_from_pid(pid);
- int ret = cynara_check(p_cynara, smack_label, session, uid, privilege);
- VC_ELM_LOG_DBG("[Client]cynara_check returned %d(%s)", ret, (CYNARA_API_ACCESS_ALLOWED == ret) ? "Allowed" : "Denied");
- if (session)
- free(session);
+ session = cynara_session_from_pid(getpid());
+ ret = cynara_check(p_cynara, client_identification, session, uid, privilege);
- if (ret != CYNARA_API_ACCESS_ALLOWED)
+ free(session);
+ session = NULL;
+ free(client_identification);
+ client_identification = NULL;
+
+ if (ret != CYNARA_API_ACCESS_ALLOWED) {
+ VC_ELM_LOG_ERR("[Client]cynara_check returned %d(Denied)", ret);
return false;
+ }
return true;
}
ecore
dlog
gmock
+ cynara-creds-self
)
FOREACH(flag ${test_pkgs_CFLAGS})
--wrap=cynara_initialize,\
--wrap=cynara_finish,\
--wrap=cynara_session_from_pid,\
+--wrap=cynara_creds_self_get_client,\
--wrap=cynara_check")
INSTALL(FILES ${CMAKE_SOURCE_DIR}/tests/${PKGNAME}.xml DESTINATION ${TZ_SYS_RO_PACKAGES})