Fix IMPI decoding issue and remove online check for PDP de-activation. 02/54202/3
authorSuresh Kumar N <suresh.n@samsung.com>
Mon, 14 Dec 2015 05:59:59 +0000 (11:29 +0530)
committerNarasimhaiah Suresh Kumar <suresh.n@samsung.com>
Mon, 14 Dec 2015 06:45:44 +0000 (22:45 -0800)
Change-Id: I28e506ad4af0d33c5291cdbb357d6195404b188c

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

index f4ad307..4132840 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 2
-%define patchlevel 92
+%define patchlevel 93
 
 Name:           libtcore
 Version:        %{major}.%{minor}.%{patchlevel}
index 6a84184..e4671ae 100644 (file)
@@ -781,11 +781,6 @@ TReturn tcore_ps_deactivate_context(CoreObject *o, CoreObject *ps_context, void
        if (!po)
                return TCORE_RETURN_EINVAL;
 
-       if (!po->online) {
-               dbg("ps network is not online !");
-               return TCORE_RETURN_PS_NETWORK_NOT_READY;
-       }
-
        if (!ps_context)
                return TCORE_RETURN_EINVAL;
 
@@ -795,9 +790,7 @@ TReturn tcore_ps_deactivate_context(CoreObject *o, CoreObject *ps_context, void
 
        rv = _ps_is_duplicated_apn(o, ps_context);
        if (rv) {
-               unsigned char cid = 0;
-               cid = tcore_context_get_id(ps_context);
-               po->cid[cid].contexts = g_slist_remove(po->cid[cid].contexts, ps_context);
+               tcore_ps_clear_context_id(o, ps_context);
                tcore_context_set_state(ps_context, CONTEXT_STATE_DEACTIVATED);
                return TCORE_RETURN_SUCCESS;
        }
index 6d7bb42..11902f8 100644 (file)
@@ -2749,7 +2749,10 @@ gboolean tcore_sim_decode_isim_impi(struct tel_sim_impi *p_out, unsigned char *p
        if (in_length < len + 2)
                err("invalid length. in_length[%d] < TLV_len[%d] + 2", in_length, len);
 
-       p_out->impi = g_memdup(&p_in[2], len);
+       p_out->impi = calloc(1, len + 1);
+
+       memcpy(p_out->impi, &p_in[2], len);
+
 
        return TRUE;
 }