summaryrefslogtreecommitdiff
path: root/src/libmbim-glib
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-09-15 22:46:27 +0200
committerAleksander Morgado <aleksandermj@chromium.org>2022-09-15 22:52:37 +0200
commitff18aba86d7e752b76f7a45e6e7b41b639126ee7 (patch)
tree88959a7dc2d641598c9075bf1d40b4bb0ecc3a41 /src/libmbim-glib
parent30f299bac8b47c317f528a3f14d530cd77becfee (diff)
downloadlibmbim-ff18aba86d7e752b76f7a45e6e7b41b639126ee7.tar.gz
libmbim-glib,device: fix double error free when processing device services query
==84574== Invalid free() / delete / delete[] / realloc() ==84574== at 0x484426F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==84574== by 0x4CEAB75: g_error_free (gerror.c:853) ==84574== by 0x49E5903: glib_autoptr_clear_GError (glib-autocleanups.h:52) ==84574== by 0x49E5903: glib_autoptr_cleanup_GError (glib-autocleanups.h:52) ==84574== by 0x49E5903: device_services_message_ready (mbim-device.c:1730) ==84574== by 0x4B24503: g_task_return_now (gtask.c:1230) ==84574== by 0x4B281BC: UnknownInlinedFun (gtask.c:1299) ==84574== by 0x4B281BC: g_task_return (gtask.c:1256) ==84574== by 0x49E23B2: transaction_task_complete_and_free (mbim-device.c:253) ==84574== by 0x49E2977: transaction_timed_out (mbim-device.c:335) ==84574== by 0x4CFF336: g_timeout_dispatch (gmain.c:4971) ==84574== by 0x4CFEB2A: UnknownInlinedFun (gmain.c:3417) ==84574== by 0x4CFEB2A: g_main_context_dispatch (gmain.c:4135) ==84574== by 0x4D54E78: g_main_context_iterate.constprop.0 (gmain.c:4211) ==84574== by 0x4CFE08E: g_main_loop_run (gmain.c:4411) ==84574== by 0x1422A6: main (in /usr/bin/ModemManager) ==84574== Address 0x8b0d810 is 0 bytes inside a block of size 22 free'd ==84574== at 0x484426F: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==84574== by 0x4CEAB75: g_error_free (gerror.c:853) ==84574== by 0x4CEAD3A: g_clear_error (gerror.c:1052) ==84574== by 0x1D8526: mbim_port_open_ready (in /usr/bin/ModemManager) ==84574== by 0x4B24503: g_task_return_now (gtask.c:1230) ==84574== by 0x4B281BC: UnknownInlinedFun (gtask.c:1299) ==84574== by 0x4B281BC: g_task_return (gtask.c:1256) ==84574== by 0x217BB6: mbim_device_open_ready (in /usr/bin/ModemManager) ==84574== by 0x4B24503: g_task_return_now (gtask.c:1230) ==84574== by 0x4B281BC: UnknownInlinedFun (gtask.c:1299) ==84574== by 0x4B281BC: g_task_return (gtask.c:1256) ==84574== by 0x49E58DD: device_services_message_ready (mbim-device.c:1748) ==84574== by 0x4B24503: g_task_return_now (gtask.c:1230) ==84574== by 0x4B281BC: UnknownInlinedFun (gtask.c:1299) ==84574== by 0x4B281BC: g_task_return (gtask.c:1256) ==84574== Block was alloc'd at ==84574== at 0x4841888: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==84574== by 0x4D079D9: g_malloc (gmem.c:125) ==84574== by 0x4D1CB44: g_strdup (gstrfuncs.c:361) ==84574== by 0x4CEA832: g_error_copy (gerror.c:892) ==84574== by 0x49E23A7: transaction_task_complete_and_free (mbim-device.c:253) ==84574== by 0x49E2977: transaction_timed_out (mbim-device.c:335) ==84574== by 0x4CFF336: g_timeout_dispatch (gmain.c:4971) ==84574== by 0x4CFEB2A: UnknownInlinedFun (gmain.c:3417) ==84574== by 0x4CFEB2A: g_main_context_dispatch (gmain.c:4135) ==84574== by 0x4D54E78: g_main_context_iterate.constprop.0 (gmain.c:4211) ==84574== by 0x4CFE08E: g_main_loop_run (gmain.c:4411) ==84574== by 0x1422A6: main (in /usr/bin/ModemManager)
Diffstat (limited to 'src/libmbim-glib')
-rw-r--r--src/libmbim-glib/mbim-device.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libmbim-glib/mbim-device.c b/src/libmbim-glib/mbim-device.c
index 2177b0b..9f2babb 100644
--- a/src/libmbim-glib/mbim-device.c
+++ b/src/libmbim-glib/mbim-device.c
@@ -1727,8 +1727,8 @@ device_services_message_ready (MbimDevice *device,
GTask *task)
{
g_autoptr(MbimMessage) response = NULL;
- g_autoptr(GError) error = NULL;
g_autoptr(MbimDeviceServiceElementArray) device_services = NULL;
+ GError *error = NULL;
guint32 device_services_count;
guint32 max_dss_sessions;
DeviceOpenContext *ctx;