static void __update_client_permission(bp_client_defs *client)
{
pthread_mutex_lock(&mutex_for_cynara_check);
- if(cynara_check(p_cynara, client->cynara_clientSmack, client->cynara_session,
- client->cynara_uid, client->privilege_label) == CYNARA_API_ACCESS_ALLOWED) {
- client->permission.read = 1;
- client->permission.write = 1;
- TRACE_ERROR("client has %s privilege.", client->privilege_label);
- } else {
- client->permission.read = 0;
- client->permission.write = 0;
- TRACE_ERROR("client does not have %s privilege.", client->privilege_label);
- }
+ if (client->cynara_clientSmack != NULL && client->cynara_session != NULL &&
+ client->cynara_uid != NULL && client->privilege_label != NULL) {
+ if(cynara_check(p_cynara, client->cynara_clientSmack, client->cynara_session,
+ client->cynara_uid, client->privilege_label) == CYNARA_API_ACCESS_ALLOWED) {
+ client->permission.read = 1;
+ client->permission.write = 1;
+ TRACE_ERROR("client has %s privilege.", client->privilege_label);
+ } else {
+ client->permission.read = 0;
+ client->permission.write = 0;
+ TRACE_ERROR("client does not have %s privilege.", client->privilege_label);
+ }
+ } else {
+ client->permission.read = 0;
+ client->permission.write = 0;
+ TRACE_ERROR("client value is NULL.");
+ }
pthread_mutex_unlock(&mutex_for_cynara_check);
}