{
pims_ipc_svc_cb_s *cb_data = NULL;
+ if (client_pid < 0) {
+ DBG("invalid client_pid(%d)", client_pid);
+ return;
+ }
+
VERBOSE("Call id [%s]", call_id);
cb_data = g_hash_table_lookup(worker_cb_table, call_id);
struct ucred uc;
socklen_t uc_len = sizeof(uc);
+ if (fd < 0) {
+ DBG("invalid fd(%d)", fd);
+ return -1;
+ }
+
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &uc, &uc_len) < 0)
ERR("getsockopt() Failed(%d)", errno);
} else
__make_raw_data(raw_data->call_id, raw_data->seq_no, NULL, &result);
- if (worker_data->client_fd != -1)
+ if (0 <= worker_data->client_fd)
__send_raw_data(worker_data->client_fd, raw_data->client_id, result);
worker_free_raw_data(raw_data);
worker_free_raw_data(result);
int flag = fcntl(worker_data->client_fd, F_GETFL, 0);
if (0 == (FD_CLOEXEC & flag)) {
int client_pid = _get_pid_from_fd(worker_data->client_fd);
- pthread_mutex_lock(&_worker_client_mutex);
- g_hash_table_remove(worker_client_info_map, GINT_TO_POINTER(client_pid));
- DBG("client pid(%u) is removed", client_pid);
- pthread_mutex_unlock(&_worker_client_mutex);
+ if (0 <= client_pid) {
+ pthread_mutex_lock(&_worker_client_mutex);
+ g_hash_table_remove(worker_client_info_map, GINT_TO_POINTER(client_pid));
+ DBG("client pid(%u) is removed", client_pid);
+ pthread_mutex_unlock(&_worker_client_mutex);
+ }
} else {
DBG("fd(%d) is already closed", worker_data->client_fd);
}
pid_t pid;
char errmsg[1024] = {0};
+ if (fd < 0) {
+ DBG("invalid fd(%d)", fd);
+ return -1;
+ }
+
pims_ipc_client_info_s *client_info = calloc(1, sizeof(pims_ipc_client_info_s));
if (NULL == client_info) {
ERR("calloc() return NULL");