Fix to dereference NULL pointer 61/75461/1 accepted/tizen/3.0/ivi/20161011.050712 accepted/tizen/3.0/mobile/20161015.033834 accepted/tizen/3.0/tv/20161016.005051 accepted/tizen/3.0/wearable/20161015.083722 accepted/tizen/common/20160620.163606 accepted/tizen/common/20160622.145811 accepted/tizen/ivi/20160622.094015 accepted/tizen/mobile/20160622.093923 accepted/tizen/tv/20160622.093939 accepted/tizen/wearable/20160622.093955 submit/tizen/20160620.043654 submit/tizen/20160621.074946 submit/tizen_3.0_ivi/20161010.000004 submit/tizen_3.0_mobile/20161015.000004 submit/tizen_3.0_tv/20161015.000003 submit/tizen_3.0_wearable/20161015.000004
authorWootak Jung <wootak.jung@samsung.com>
Mon, 20 Jun 2016 04:23:13 +0000 (13:23 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 20 Jun 2016 04:23:13 +0000 (13:23 +0900)
Change-Id: I78aac2169e62d6f317770311db65e272b8c7ec34

packaging/libtcore.spec
src/core_object/co_phonebook.c
src/core_object/co_ps.c

index 852f396..51d641e 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 3
-%define patchlevel 4
+%define patchlevel 5
 
 Name:           libtcore
 Version:        %{major}.%{minor}.%{patchlevel}
index 6b38ece..d82e77b 100644 (file)
@@ -119,6 +119,8 @@ gboolean tcore_phonebook_get_status(CoreObject *o)
        struct private_object_data *po = NULL;
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PHONEBOOK, FALSE);
        po = tcore_object_ref_object(o);
+       if (!po)
+               return FALSE;
 
        return po->b_init;
 }
@@ -128,6 +130,8 @@ gboolean tcore_phonebook_set_status(CoreObject *o, gboolean b_init)
        struct private_object_data *po = NULL;
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PHONEBOOK, FALSE);
        po = tcore_object_ref_object(o);
+       if (!po)
+               return FALSE;
 
        po->b_init = b_init;
 
@@ -185,6 +189,8 @@ enum tel_phonebook_type tcore_phonebook_get_selected_type(CoreObject *o)
        struct private_object_data *po = NULL;
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PHONEBOOK, PB_TYPE_UNKNOWNN);
        po = tcore_object_ref_object(o);
+       if (!po)
+               return PB_TYPE_UNKNOWNN;
 
        return po->selected;
 }
@@ -194,6 +200,8 @@ gboolean tcore_phonebook_set_selected_type(CoreObject *o, enum tel_phonebook_typ
        struct private_object_data *po = NULL;
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PHONEBOOK, FALSE);
        po = tcore_object_ref_object(o);
+       if (!po)
+               return FALSE;
 
        po->selected = t;
 
index e4671ae..86afd43 100644 (file)
@@ -111,6 +111,8 @@ static gboolean _ps_is_active_context(CoreObject *o, CoreObject *ps_context)
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS, FALSE);
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return FALSE;
 
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++) {
                if (po->cid[idx_cid].cid == 0)
@@ -153,6 +155,8 @@ static gboolean _ps_is_duplicated_apn(CoreObject *o, CoreObject *ps_context)
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS, FALSE);
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return FALSE;
        t_apn = tcore_context_get_apn(ps_context);
 
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++) {
@@ -353,6 +357,9 @@ unsigned int tcore_ps_set_cid_active(CoreObject *o, unsigned int cid, unsigned i
                return 0;
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return 0;
+
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++) {
                if (po->cid[idx_cid].cid == cid) {
                        po->cid[idx_cid].active = enable;
@@ -373,6 +380,9 @@ unsigned int tcore_ps_get_cid_active(CoreObject *o, unsigned int cid)
                return 0;
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return 0;
+
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++)
                if (po->cid[idx_cid].cid == cid)
                        return po->cid[idx_cid].active;
@@ -389,6 +399,8 @@ GSList *tcore_ps_get_active_cids(CoreObject *o)
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS, NULL);
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return NULL;
 
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++)
                if (po->cid[idx_cid].active)
@@ -407,6 +419,9 @@ unsigned int tcore_ps_set_cid_connected(CoreObject *o, unsigned int cid, unsigne
                return 0;
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return 0;
+
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++) {
                if (po->cid[idx_cid].cid == cid) {
                        po->cid[idx_cid].connected = connected;
@@ -427,6 +442,9 @@ unsigned int tcore_ps_get_cid_connected(CoreObject *o, unsigned int cid)
                return 0;
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return 0;
+
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++)
                if (po->cid[idx_cid].cid == cid)
                        return po->cid[idx_cid].connected;
@@ -443,6 +461,8 @@ GSList *tcore_ps_get_connected_cids(CoreObject *o)
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS, NULL);
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return NULL;
 
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++)
                if (po->cid[idx_cid].connected)
@@ -459,6 +479,8 @@ unsigned int tcore_ps_is_active_apn(CoreObject *o, const char *apn)
        CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS, 0);
 
        po = tcore_object_ref_object(o);
+       if (!po)
+               return 0;
 
        for (idx_cid = 1; idx_cid <= po->num_of_pdn; idx_cid++) {
                if (po->cid[idx_cid].cid == 0)