aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-01-09 14:52:50 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-01-09 15:15:18 +0100
commit29e64f59af44a23d929107fb4896d10f44b4dfd7 (patch)
treec1e6a1f2916e5852fa705c89770c5daf607ec05d /src
parente3e837a8a777a3c4404f8d598eb68c7467f53b19 (diff)
bearer-qmi: plug memleak when disposing connected bearer
Also, explicitly close the QMI port if we had it open for the connected bearer. ==991919== 6,533 (48 direct, 6,485 indirect) bytes in 1 blocks are definitely lost in loss record 5,171 of 5,177 ==991919== at 0x5048291: g_type_create_instance (gtype.c:1844) ==991919== by 0x502DFC4: g_object_new_internal (gobject.c:1827) ==991919== by 0x502EFA9: g_object_new_valist (gobject.c:2152) ==991919== by 0x502DB9E: g_object_new (gobject.c:1670) ==991919== by 0x2215CA: mm_port_qmi_new (mm-port-qmi.c:615) ==991919== by 0x16C892: mm_base_modem_grab_port (mm-base-modem.c:295) ==991919== by 0x1CEEE5: mm_plugin_create_modem (mm-plugin.c:1048) ==991919== by 0x157E1E: mm_device_create_modem (mm-device.c:413) ==991919== by 0x1535A0: device_support_check_ready (mm-base-manager.c:195) ==991919== by 0x4EC9160: g_task_return_now (gtask.c:1212) ==991919== by 0x4EC92AA: g_task_return (gtask.c:1281) ==991919== by 0x4EC9E34: g_task_return_pointer (gtask.c:1689)
Diffstat (limited to 'src')
-rw-r--r--src/mm-bearer-qmi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index 8565efb0..5cea9a11 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -2153,6 +2153,11 @@ dispose (GObject *object)
&self->priv->event_report_ipv6_indication_id);
}
+ if (self->priv->qmi && self->priv->explicit_qmi_open) {
+ self->priv->explicit_qmi_open = FALSE;
+ mm_port_qmi_close (self->priv->qmi);
+ }
+ g_clear_object (&self->priv->qmi);
g_clear_object (&self->priv->data);
g_clear_object (&self->priv->client_ipv4);
g_clear_object (&self->priv->client_ipv6);