aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-modem.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index bb2e51dd..ad34ab1d 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1177,15 +1177,17 @@ mm_base_modem_organize_ports (MMBaseModem *self,
MMPortSerialGps *gps = NULL;
MMPortSerial *audio = NULL;
MMPortSerialAt *data_at_primary = NULL;
- GList *data_at = NULL;
- GList *data_net = NULL;
+ GList *l;
+ /* These lists don't keep full references, so they should be
+ * g_list_free()-ed on error exits */
+ g_autoptr(GList) data_at = NULL;
+ g_autoptr(GList) data_net = NULL;
#if defined WITH_QMI
- GList *qmi = NULL;
+ g_autoptr(GList) qmi = NULL;
#endif
#if defined WITH_MBIM
- GList *mbim = NULL;
+ g_autoptr(GList) mbim = NULL;
#endif
- GList *l;
g_return_val_if_fail (MM_IS_BASE_MODEM (self), FALSE);
@@ -1411,7 +1413,7 @@ mm_base_modem_organize_ports (MMBaseModem *self,
if (data_net) {
if (self->priv->data_net_supported) {
g_list_foreach (data_net, (GFunc)g_object_ref, NULL);
- self->priv->data = g_list_concat (self->priv->data, data_net);
+ self->priv->data = g_list_concat (self->priv->data, g_steal_pointer (&data_net));
} else
mm_obj_dbg (self, "net ports available but ignored");
}
@@ -1424,7 +1426,7 @@ mm_base_modem_organize_ports (MMBaseModem *self,
self->priv->data = g_list_append (self->priv->data, g_object_ref (data_at_primary));
if (data_at) {
g_list_foreach (data_at, (GFunc)g_object_ref, NULL);
- self->priv->data = g_list_concat (self->priv->data, data_at);
+ self->priv->data = g_list_concat (self->priv->data, g_steal_pointer (&data_at));
}
} else
mm_obj_dbg (self, "at data ports available but ignored");
@@ -1451,14 +1453,14 @@ mm_base_modem_organize_ports (MMBaseModem *self,
mm_port_peek_kernel_device (
MM_PORT (self->priv->data->data))));
g_list_foreach (qmi, (GFunc)g_object_ref, NULL);
- self->priv->qmi = qmi;
+ self->priv->qmi = g_steal_pointer (&qmi);
}
#endif
#if defined WITH_MBIM
if (mbim) {
g_list_foreach (mbim, (GFunc)g_object_ref, NULL);
- self->priv->mbim = mbim;
+ self->priv->mbim = g_steal_pointer (&mbim);
}
#endif