From 984d88492d009e02336d47a9c4174f3569544c71 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 28 Feb 2018 10:43:59 -0600 Subject: [PATCH] sim: Fix crash aid_sessions was not properly reset to NULL when freed: Program received signal SIGSEGV, Segmentation fault. __ofono_watchlist_free (watchlist=0x0) at src/watch.c:91 91 for (l = watchlist->items; l; l = l->next) { (gdb) bt func=0x4ceca0 , user_data=0x0) at /var/tmp/portage/dev-libs/glib-2.50.3-r1/work/glib-2.50.3/glib/gslist.c:878 free_func=0x4ceca0 ) at /var/tmp/portage/dev-libs/glib-2.50.3-r1/work/glib-2.50.3/glib/gslist.c:172 at src/sim.c:2605 user_data=) at plugins/phonesim.c:511 func=0x49c8a0 , user_data=0x7fffffffdbc0) at /var/tmp/portage/dev-libs/glib-2.50.3-r1/work/glib-2.50.3/glib/gslist.c:878 chat=0x7b70b0) at gatchat/gatchat.c:417 --- src/sim.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sim.c b/src/sim.c index 31df6362..16707337 100644 --- a/src/sim.c +++ b/src/sim.c @@ -2601,8 +2601,10 @@ static void sim_free_main_state(struct ofono_sim *sim) if (sim->impi) g_free(sim->impi); - if (sim->aid_sessions) + if (sim->aid_sessions) { g_slist_free_full(sim->aid_sessions, aid_session_free); + sim->aid_sessions = NULL; + } sim->initialized = false; sim->wait_initialized = false;