diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-base-modem.c | 20 |
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 |