diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-15 22:46:27 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-15 22:52:37 +0200 |
commit | ff18aba86d7e752b76f7a45e6e7b41b639126ee7 (patch) | |
tree | 88959a7dc2d641598c9075bf1d40b4bb0ecc3a41 /src/libmbim-glib | |
parent | 30f299bac8b47c317f528a3f14d530cd77becfee (diff) | |
download | libmbim-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.c | 2 |
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; |