process as warning if cynara session is NULL
[platform/core/pim/pims-ipc.git] / src / pims-ipc-worker.c
index b4caec2..657382f 100644 (file)
@@ -183,7 +183,13 @@ static gboolean worker_pop_raw_data(pims_ipc_worker_data_s *worker,
                return FALSE;
        }
 
-       *data = g_list_first(worker->list)->data;
+       GList *cursor = g_list_first(worker->list);
+       if (NULL == cursor) {
+               pthread_mutex_unlock(&worker->queue_mutex);
+               *data = NULL;
+               return FALSE;
+       }
+       *data = cursor->data;
        worker->list = g_list_delete_link(worker->list, g_list_first(worker->list));
        pthread_mutex_unlock(&worker->queue_mutex);
 
@@ -573,9 +579,8 @@ static int _create_client_info(int fd, pims_ipc_client_info_s **p_client_info)
 
        client_info->client_session = cynara_session_from_pid(pid);
        if (NULL == client_info->client_session) {
-               ERR("cynara_session_from_pid() return NULL");
-               client_destroy_info(client_info);
-               return -1;
+               WARN("cynara_session_from_pid() return NULL");
+               client_info->client_session = strdup("");
        }
        *p_client_info = client_info;
 
@@ -651,11 +656,13 @@ pims_ipc_client_info_s* client_clone_info(pims_ipc_client_info_s *client_info)
 pims_ipc_client_info_s* client_get_info(int client_pid)
 {
        pims_ipc_client_info_s *client_info = NULL;
+       pims_ipc_client_info_s *client_info_clone = NULL;
 
        pthread_mutex_lock(&_worker_client_mutex);
        client_info = g_hash_table_lookup(worker_client_info_map, GINT_TO_POINTER(client_pid));
+       client_info_clone = client_clone_info(client_info);
        pthread_mutex_unlock(&_worker_client_mutex);
        DBG("Get client_info(%p) from pid(%d)", client_info, client_pid);
-       return client_info;
+       return client_info_clone;
 }