## Dependent packages ##
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED
- capi-base-common capi-system-info cynara-client cynara-session dbus-1 dlog ecore bundle capi-message-port glib-2.0 json-glib-1.0 libtzplatform-config libxml-2.0 vconf
+ capi-base-common capi-system-info cynara-client cynara-session cynara-creds-self dbus-1 dlog ecore bundle capi-message-port glib-2.0 json-glib-1.0 libtzplatform-config libxml-2.0 vconf
)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_TRUSTED_MESSAGE_PORT=${USE_TRUSTED_MESSAGE_PORT}")
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <system_info.h>
#include <vconf/vconf.h>
#include <stdlib.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))
- MA_SLOGE("[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ MA_SLOGE("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);
- MA_SLOGD("[Client]cynara_check returned %d(%s)", ret, (CYNARA_API_ACCESS_ALLOWED == ret) ? "Allowed" : "Denied"); //LCOV_EXCL_LINE
- 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) {
+ MA_SLOGE("[Client]cynara_check returned %d(Denied)", ret);
return false;
+ }
return true;
}
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <system_info.h>
#include <vconf/vconf.h>
#include <stdlib.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))
- MAAP_SLOGE("[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ MAAP_SLOGE("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);
- MAAP_SLOGD("[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) {
+ MAAP_SLOGE("[Client]cynara_check returned %d(Denied)", ret);
return false;
+ }
return true;
}
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <system_info.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))
- MAUI_SLOGE("[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ MAUI_SLOGE("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);
- MAUI_SLOGD("[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) {
+ MAUI_SLOGE("[Client]cynara_check returned %d(Denied)", ret);
return false;
+ }
return true;
}
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(cynara-creds-self)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(ecore)
libxml-2.0
vconf
gmock
+ cynara-creds-self
)
FOREACH(flag ${pkgs_CFLAGS})