summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/phonebook.c
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2010-10-19 11:28:06 +0300
committerAki Niemi <aki.niemi@nokia.com>2010-10-19 15:06:35 +0300
commit255782f8c2ff64991b362fb0e0554bd2adb7069e (patch)
tree86d891e0259255cc78f6344da69bbb33ad5a7b0c /drivers/isimodem/phonebook.c
parentfd74feac0d7c5bbba4653b0b5c43c458c6874971 (diff)
downloadofono-255782f8c2ff64991b362fb0e0554bd2adb7069e.tar.bz2
isimodem: Fix request cleanup code
Adds a check for when the driver is being removed, in which case no new ISI requests should be generated.
Diffstat (limited to 'drivers/isimodem/phonebook.c')
-rw-r--r--drivers/isimodem/phonebook.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c
index 1041070e..dc832c44 100644
--- a/drivers/isimodem/phonebook.c
+++ b/drivers/isimodem/phonebook.c
@@ -259,7 +259,7 @@ static void isi_export_entries(struct ofono_phonebook *pb, const char *storage,
0, 0 /* filler */
};
- if (!cbd)
+ if (!cbd || !pbd)
goto error;
if (strcmp(storage, "SM"))
@@ -335,10 +335,12 @@ static void isi_phonebook_remove(struct ofono_phonebook *pb)
{
struct pb_data *data = ofono_phonebook_get_data(pb);
- if (data) {
- g_isi_client_destroy(data->client);
- g_free(data);
- }
+ if (!data)
+ return;
+
+ ofono_phonebook_set_data(pb, NULL);
+ g_isi_client_destroy(data->client);
+ g_free(data);
}
static struct ofono_phonebook_driver driver = {