broadband-modem: plug memleak if mm_parse_csim_response() fails

The GError would be leaking.
This commit is contained in:
Aleksander Morgado
2020-01-30 11:59:14 +01:00
parent d5b30be6de
commit 517862be35
+15 -11
View File
@@ -1508,6 +1508,7 @@ csim_ready (MMBaseModem *self,
LoadUnlockRetriesContext *ctx;
const gchar *response;
GError *error = NULL;
gint val;
ctx = g_task_get_task_data (task);
@@ -1516,19 +1517,22 @@ csim_ready (MMBaseModem *self,
mm_dbg ("Couldn't load retry count for lock '%s': %s",
mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock),
error->message);
g_error_free (error);
} else {
gint val;
val = mm_parse_csim_response (response, &error);
if (val < 0) {
mm_warn ("Parse error in step %d: %s.", ctx->i, error->message);
mm_dbg ("Couldn't parse retry count value for lock '%s'",
mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock));
} else
mm_unlock_retries_set (ctx->retries, unlock_retries_map[ctx->i].lock, val);
goto next;
}
val = mm_parse_csim_response (response, &error);
if (val < 0) {
mm_dbg ("Couldn't parse retry count value for lock '%s': %s",
mm_modem_lock_get_string (unlock_retries_map[ctx->i].lock),
error->message);
goto next;
}
mm_unlock_retries_set (ctx->retries, unlock_retries_map[ctx->i].lock, val);
next:
g_clear_error (&error);
/* Go to next lock value */
ctx->i++;
load_unlock_retries_context_step (task);