summaryrefslogtreecommitdiffstats
path: root/gisi/client.c
diff options
context:
space:
mode:
authorMika Liljeberg <mika.liljeberg@nokia.com>2010-11-10 14:22:28 +0200
committerAki Niemi <aki.niemi@nokia.com>2010-11-11 09:20:39 +0200
commit39823fee142013f20b5db60ea4b555098f93c978 (patch)
tree86619875e962268ab5a747537b25b85599097495 /gisi/client.c
parent2ab42201db5ef34cf6e4f9b37a50bc70164e1410 (diff)
downloadofono-39823fee142013f20b5db60ea4b555098f93c978.tar.bz2
gisi: fix crash bug in g_isi_remove_subscription
Diffstat (limited to 'gisi/client.c')
-rw-r--r--gisi/client.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gisi/client.c b/gisi/client.c
index 8ab3dc9f..8e413314 100644
--- a/gisi/client.c
+++ b/gisi/client.c
@@ -744,16 +744,19 @@ int g_isi_subscribe(GIsiClient *client, uint8_t type,
*/
void g_isi_remove_subscription(GIsiClient *client, uint8_t res, uint8_t type)
{
+ void *ret;
GIsiIndication *ind;
unsigned int id = (res << 8) | type;
if (!client)
return;
- ind = tdelete(&id, &client->inds.subs, g_isi_cmp);
- if (!ind)
+ ret = tfind(&id, &client->inds.subs, g_isi_cmp);
+ if (!ret)
return;
+ ind = *(GIsiIndication **)ret;
+ tdelete(ind, &client->inds.subs, g_isi_cmp);
client->inds.count--;
g_free(ind);
}