From 4ff9cf9a27d4d3f497ce7de70db0576156b4f350 Mon Sep 17 00:00:00 2001 From: Guillaume Lucas Date: Wed, 9 Mar 2011 12:32:23 +0000 Subject: simfs: fix GLib-CRITICAL warning During modem release, when there is no SIM card, a GLib-CRITICAL issue occurs during the free of the sim fs context. --- src/simfs.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/simfs.c b/src/simfs.c index 3a97a10c..49f79dd5 100644 --- a/src/simfs.c +++ b/src/simfs.c @@ -166,21 +166,23 @@ void sim_fs_context_free(struct ofono_sim_context *context) int n = 0; struct sim_fs_op *op; - while ((op = g_queue_peek_nth(fs->op_q, n)) != NULL) { - if (op->context != context) { - n += 1; - continue; - } + if (fs->op_q) { + while ((op = g_queue_peek_nth(fs->op_q, n)) != NULL) { + if (op->context != context) { + n += 1; + continue; + } - if (n == 0) { - op->cb = NULL; + if (n == 0) { + op->cb = NULL; - n += 1; - continue; - } + n += 1; + continue; + } - sim_fs_op_free(op); - g_queue_remove(fs->op_q, op); + sim_fs_op_free(op); + g_queue_remove(fs->op_q, op); + } } if (context->file_watches) -- cgit v1.2.3