INCLUDE(FindPkgConfig)
IF("${_TV_PRODUCT}" STREQUAL "TRUE")
pkg_check_modules(pkgs REQUIRED
- aul capi-media-audio-io capi-media-wav-player capi-network-bluetooth capi-network-bluetooth-tv capi-system-info cynara-client cynara-session
+ aul capi-media-audio-io capi-media-wav-player capi-network-bluetooth capi-network-bluetooth-tv capi-system-info cynara-client cynara-session cynara-creds-self
dbus-1 dlog ecore glib-2.0 libgum libtzplatform-config libxml-2.0 vconf vconf-internal-keys buxton2 gmock farfield-voice-api capi-appfw-app-manager
)
ELSE()
pkg_check_modules(pkgs REQUIRED
- aul capi-media-audio-io capi-media-wav-player capi-system-info cynara-client cynara-session
+ aul capi-media-audio-io capi-media-wav-player capi-system-info cynara-client cynara-session cynara-creds-self
dbus-1 dlog ecore glib-2.0 libgum libtzplatform-config libxml-2.0 vconf vconf-internal-keys buxton2 gmock capi-appfw-app-manager
)
ENDIF()
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <dirent.h>
#include <Ecore.h>
#include <fcntl.h>
static bool __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))
- SLOG(LOG_ERROR, TAG_STTC, "[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ SLOG(LOG_ERROR, TAG_STTC, "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);
+ session = cynara_session_from_pid(getpid());
+ ret = cynara_check(p_cynara, client_identification, session, uid, privilege);
+
free(session);
session = NULL;
+ free(client_identification);
+ client_identification = NULL;
if (ret != CYNARA_API_ACCESS_ALLOWED) {
SLOG(LOG_DEBUG, TAG_STTC, "[Client]cynara_check returned %d(Denied)", ret);
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)
#include <cynara-client.h>
#include <cynara-error.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#include <pthread.h>
#include "stt_engine.h"
static bool is_privilege_allowed(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))
- SLOG(LOG_ERROR, TAG_STTD, "[ERROR] fail to fread"); //LCOV_EXCL_LINE
-
- fclose(fp);
- fp = NULL;
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ SLOG(LOG_ERROR, TAG_STTD, "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);
+ session = cynara_session_from_pid(getpid());
+ ret = cynara_check(p_cynara, client_identification, session, uid, privilege);
+
free(session);
+ session = NULL;
+ free(client_identification);
+ client_identification = NULL;
if (ret != CYNARA_API_ACCESS_ALLOWED) {
- SLOG(LOG_ERROR, TAG_STTD, "[Client]cynara_check returned %d(Denied)", ret);
+ SLOG(LOG_DEBUG, TAG_STTD, "[Client]cynara_check returned %d(Denied)", ret);
return false;
}
return true;
--wrap=cynara_finish,\
--wrap=cynara_session_from_pid,\
--wrap=cynara_check,\
+--wrap=cynara_creds_self_get_client,\
--wrap=calloc")
INSTALL(FILES ${CMAKE_SOURCE_DIR}/tests/${PKGNAME}.xml DESTINATION ${TZ_SYS_RO_PACKAGES})
{
return strdup("session");
}
+
+EXPORT_API int __wrap_cynara_creds_self_get_client(enum cynara_client_creds method, char **client)
+{
+ return 0;
+}
\ No newline at end of file
#include <sys/types.h>
#include <unistd.h>
+#include <cynara-creds-self.h>
#ifdef __cplusplus
extern "C" {
const char* privilege);
char *__wrap_cynara_session_from_pid(pid_t pid);
+int __wrap_cynara_creds_self_get_client(enum cynara_client_creds method, char **client);
#ifdef __cplusplus
}