Cleanup SSC entries if USSD exits first
authorDenis Kenzior <denkenz@gmail.com>
Mon, 17 Aug 2009 20:08:14 +0000 (15:08 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Mon, 17 Aug 2009 20:08:48 +0000 (15:08 -0500)
src/ussd.c

index a9d837e..d4f2f54 100644 (file)
@@ -492,6 +492,14 @@ static void ussd_unregister(struct ofono_atom *atom)
        struct ofono_modem *modem = __ofono_atom_get_modem(atom);
        const char *path = __ofono_atom_get_path(atom);
 
+       g_slist_foreach(ussd->ss_control_list, (GFunc)ssc_entry_destroy, NULL);
+       g_slist_free(ussd->ss_control_list);
+       ussd->ss_control_list = NULL;
+
+       g_slist_foreach(ussd->ss_passwd_list, (GFunc)ssc_entry_destroy, NULL);
+       g_slist_free(ussd->ss_passwd_list);
+       ussd->ss_passwd_list = NULL;
+
        ofono_modem_remove_interface(modem, SUPPLEMENTARY_SERVICES_INTERFACE);
        g_dbus_unregister_interface(conn, path,
                                        SUPPLEMENTARY_SERVICES_INTERFACE);