There was a use after free bug to access freed e_client.
When the E_Client deleted before the tzsh_service destroyed by request from client,
It could occure the "Use After Free" issue to the E_Client object.
For fix this problem, added e_object_ref/unref of E_Client to tzsh_service add and del
Change-Id: I1eecb42d5afa700c95f020336dc73c488449cbc5
tzsh_srv->name = eina_stringshare_add(name);
tzsh_srv->ep = ep;
tzsh_srv->ec = ec;
+ e_object_ref(E_OBJECT(ec));
tzsh_srv->tzsh->service_list = eina_list_append(tzsh_srv->tzsh->service_list, tzsh_srv);
polwl->srvs[role] = tzsh_srv;
}
}
+ if (tzsh_srv->ec)
+ {
+ e_object_unref(E_OBJECT(tzsh_srv->ec));
+ tzsh_srv->ec = NULL;
+ }
memset(tzsh_srv, 0x0, sizeof(E_Policy_Wl_Tzsh_Srv));
E_FREE(tzsh_srv);
}