fixed bug:delete handle after using it 09/47509/1
authorGukhwan Cho <gh78.cho@samsung.com>
Tue, 21 Jul 2015 05:43:11 +0000 (14:43 +0900)
committerGukhwan Cho <gh78.cho@samsung.com>
Fri, 4 Sep 2015 04:37:51 +0000 (13:37 +0900)
Change-Id: If108a70c801d46e31cf04312b58f7b947094b67d
Signed-off-by: Gukhwan Cho <gh78.cho@samsung.com>
client/ctsvc_client_ipc.c
client/ctsvc_client_noti.c
client/ctsvc_client_service_helper.c

index f7ef04e..b7c424d 100644 (file)
@@ -160,7 +160,6 @@ int ctsvc_ipc_connect(contacts_h contact, unsigned int handle_id)
        struct ctsvc_ipc_s *ipc_data = NULL;
        char ipc_key[CTSVC_STR_SHORT_LEN] = {0};
 
-       RETV_IF(_ctsvc_ipc_disconnected, CONTACTS_ERROR_IPC_NOT_AVALIABLE);
        snprintf(ipc_key, sizeof(ipc_key), "%u", handle_id);
 
        if (NULL == _ctsvc_ipc_table)
@@ -197,7 +196,6 @@ int ctsvc_ipc_disconnect(contacts_h contact, unsigned int handle_id, int connect
        pims_ipc_data_h indata = NULL;
        char ipc_key[CTSVC_STR_SHORT_LEN] = {0};
 
-       RETV_IF(_ctsvc_ipc_disconnected, CONTACTS_ERROR_IPC_NOT_AVALIABLE);
        RETVM_IF(NULL == _ctsvc_ipc_table, CONTACTS_ERROR_IPC, "contacts not connected");
        snprintf(ipc_key, sizeof(ipc_key), "%u", handle_id);
 
index 47b91d1..23d2ed2 100644 (file)
@@ -138,8 +138,8 @@ int ctsvc_ipc_destroy_for_change_subscription()
        ctsvc_mutex_lock(CTS_MUTEX_PIMS_IPC_PUBSUB);
 
        if (1 == __ipc_pubsub_ref) {
-               pims_ipc_destroy_for_subscribe(__ipc);
                ctsvc_ipc_unset_disconnected_cb(__ipc);
+               pims_ipc_destroy_for_subscribe(__ipc);
                __ipc = NULL;
        }
        else if (1 < __ipc_pubsub_ref) {
index 6d4207b..c989092 100644 (file)
@@ -91,6 +91,7 @@ int ctsvc_client_connect(contacts_h contact)
        CTS_FN_CALL;
        int ret;
        ctsvc_base_s *base = (ctsvc_base_s *)contact;
+       RETV_IF(NULL == base, CONTACTS_ERROR_INVALID_PARAMETER);
 
        ctsvc_mutex_lock(CTS_MUTEX_CONNECTION);
        if (0 == base->connection_count) {
@@ -137,9 +138,11 @@ int ctsvc_client_disconnect(contacts_h contact)
 {
        CTS_FN_CALL;
        int ret;
+       ctsvc_base_s *base = (ctsvc_base_s *)contact;
+       RETV_IF(NULL == base, CONTACTS_ERROR_INVALID_PARAMETER);
+
        ctsvc_mutex_lock(CTS_MUTEX_CONNECTION);
 
-       ctsvc_base_s *base = (ctsvc_base_s *)contact;
        if (1 == base->connection_count) {
                ret = ctsvc_ipc_disconnect(contact, ctsvc_client_get_pid(), _ctsvc_connection);
                if (ret != CONTACTS_ERROR_NONE) {
@@ -176,6 +179,7 @@ int ctsvc_client_connect_on_thread(contacts_h contact)
 {
        int ret;
        ctsvc_base_s *base = (ctsvc_base_s *)contact;
+       RETV_IF(NULL == base, CONTACTS_ERROR_INVALID_PARAMETER);
 
        ctsvc_mutex_lock(CTS_MUTEX_CONNECTION);
 
@@ -224,6 +228,7 @@ int ctsvc_client_disconnect_on_thread(contacts_h contact)
 {
        int ret;
        ctsvc_base_s *base = (ctsvc_base_s *)contact;
+       RETV_IF(NULL == base, CONTACTS_ERROR_INVALID_PARAMETER);
 
        ctsvc_mutex_lock(CTS_MUTEX_CONNECTION);