_e_devicemgr_util_do_privilege_check(struct wl_client *client, int socket_fd, const char *rule)
{
int ret, pid;
- char *clientSmack=NULL, *uid=NULL, *client_session=NULL;
+ char *uid = NULL;
Eina_Bool res = EINA_FALSE;
/* If initialization of cynara has been failed, let's not to do further permission checks. */
if (e_devicemgr->wl_data->p_cynara == NULL && e_devicemgr->wl_data->cynara_initialized) return EINA_TRUE;
if (socket_fd < 0) return EINA_FALSE;
- ret = cynara_creds_socket_get_client(socket_fd, CLIENT_METHOD_SMACK, &clientSmack);
- E_DEVMGR_CYNARA_ERROR_CHECK_GOTO("cynara_creds_socket_get_client", ret, finish);
-
ret = cynara_creds_socket_get_user(socket_fd, USER_METHOD_UID, &uid);
E_DEVMGR_CYNARA_ERROR_CHECK_GOTO("cynara_creds_socket_get_user", ret, finish);
ret = cynara_creds_socket_get_pid(socket_fd, &pid);
E_DEVMGR_CYNARA_ERROR_CHECK_GOTO("cynara_creds_socket_get_pid", ret, finish);
- client_session = cynara_session_from_pid(pid);
-
- ret = e_security_privilege_check(pid, atoi(uid), rule);
-
- if (CYNARA_API_ACCESS_ALLOWED == ret)
- res = EINA_TRUE;
+ res = e_security_privilege_check(pid, atoi(uid), rule);
finish:
- E_FREE(client_session);
- E_FREE(clientSmack);
E_FREE(uid);
return res;
Eina_Bool
e_keyrouter_wl_util_do_privilege_check(struct wl_client *client, uint32_t mode, uint32_t keycode)
{
- int ret, retry_cnt=0, len=0;
- char *clientSmack=NULL, *client_session=NULL, uid2[16]={0, };
+ int ret, retry_cnt=0;
Eina_Bool res = EINA_FALSE;
Eina_List *l;
struct wl_client *wc_data;
if (!client) return EINA_FALSE;
- /* If initialize cynara is failed, allow keygrabs regardless of the previlege permition. */
+ /* If initialize cynara is failed, allow keygrabs regardless of the privilege permission. */
if (krt->p_cynara == NULL)
{
if (retried == EINA_FALSE)
wl_client_get_credentials(client, &pid, &uid, &gid);
- len = smack_new_label_from_process((int)pid, &clientSmack);
- if (len <= 0) goto finish;
-
- snprintf(uid2, 15, "%d", (int)uid);
- client_session = cynara_session_from_pid(pid);
-
- ret = e_security_privilege_check(pid, uid, "http://tizen.org/privilege/keygrab");
- if (CYNARA_API_ACCESS_ALLOWED == ret)
+ res = e_security_privilege_check(pid, uid, "http://tizen.org/privilege/keygrab");
+ if (!res)
{
- res = EINA_TRUE;
+ KLINF("Fail to check cynara, (pid : %d)", pid);
}
- else
- {
- KLINF("Fail to check cynara, error : %d (pid : %d)", ret, pid);
- }
-finish:
- if (client_session) E_FREE(client_session);
- if (clientSmack) E_FREE(clientSmack);
+finish:
return res;
}
#endif