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)
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user