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.
This commit is contained in:
Guillaume Lucas 2011-03-09 12:32:23 +00:00 committed by Denis Kenzior
parent a8bdb87c10
commit 4ff9cf9a27
1 changed files with 16 additions and 14 deletions

View File

@ -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;
n += 1;
continue;
}
sim_fs_op_free(op);
g_queue_remove(fs->op_q, op);
}
if (n == 0) {
op->cb = NULL;
n += 1;
continue;
}
sim_fs_op_free(op);
g_queue_remove(fs->op_q, op);
}
if (context->file_watches)