aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2024-01-25 11:22:53 +0000
committerAleksander Morgado <aleksander@aleksander.es>2024-01-25 11:25:11 +0000
commit99f520269b6d3d3b081e58c4c91a8cd0a336c8f5 (patch)
tree3a02e09735611564c82f68f6ffc68f343c6cc5be /src
parent4078d54ad53098a754bbf846896b5de09dd25824 (diff)
port-qmi: fix double free when WDA Set Data Format fails
Thread 0(id: 4915) CRASHED [ SIGABRT@0x0000000000000000 ] 0x00007b0f6732fa3f (libc.so.6 - pthread_kill.c: 44) __pthread_kill_implementation 0x00007b0f672e4c6c (libc.so.6 - raise.c: 26) raise 0x00007b0f672d0462 (libc.so.6 - abort.c: 79) abort 0x00007b0f67323347 (libc.so.6 - libc_fatal.c: 155) __libc_message 0x00007b0f67339929 (libc.so.6 - malloc.c: 5664) malloc_printerr 0x00007b0f6733b5cb (libc.so.6 - malloc.c: 4439) _int_free 0x00007b0f6733e279 (libc.so.6 - malloc.c: 3391) __libc_free 0x00007b0f67abcabe (libglib-2.0.so.0 - gerror.c: 856) g_error_free 0x000059fc4262623e (ModemManager - glib-autocleanups.h: 54) glib_autoptr_clear_GError 0x000059fc4262623e (ModemManager - glib-autocleanups.h: 54) glib_autoptr_cleanup_GError 0x000059fc4262623e (ModemManager - mm-port-qmi.c: 1501) set_data_format_ready 0x00007b0f67985e57 (libgio-2.0.so.0 - gtask.c: 1309) g_task_return_now 0x00007b0f67984e21 (libgio-2.0.so.0 - gtask.c: 1378) g_task_return 0x00007b0f677f7107 (libqmi-glib.so.5 - qmi-wda.c: 4761) set_data_format_ready 0x00007b0f67972329 (libgio-2.0.so.0 - gsimpleasyncresult.c: 804) g_simple_async_result_complete 0x00007b0f6797240a (libgio-2.0.so.0 - gsimpleasyncresult.c: 816) complete_in_idle_cb 0x00007b0f67ad17a4 (libglib-2.0.so.0 - gmain.c: 3460) g_main_dispatch 0x00007b0f67ad17a4 (libglib-2.0.so.0 - gmain.c: 4200) g_main_context_dispatch 0x00007b0f67ad1ac3 (libglib-2.0.so.0 - gmain.c: 4276) g_main_context_iterate 0x00007b0f67ad1d41 (libglib-2.0.so.0 - gmain.c: 4479) g_main_loop_run 0x000059fc425657df (ModemManager - main.c: 236) main 0x00007b0f672d06c5 (libc.so.6 - libc_start_call_main.h: 58) __libc_start_call_main 0x00007b0f672d0781 (libc.so.6 - libc-start.c: 389) __libc_start_main_impl 0x000059fc42565130 (ModemManager) _start 0x00007fffdea098c7
Diffstat (limited to 'src')
-rw-r--r--src/mm-port-qmi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mm-port-qmi.c b/src/mm-port-qmi.c
index 4d79a43b..7f8ec967 100644
--- a/src/mm-port-qmi.c
+++ b/src/mm-port-qmi.c
@@ -1482,7 +1482,7 @@ set_data_format_ready (QmiClientWda *client,
output = qmi_client_wda_set_data_format_finish (client, res, &error);
if (!output || !qmi_message_wda_set_data_format_output_get_result (output, &error)) {
- g_task_return_error (task, error);
+ g_task_return_error (task, g_steal_pointer (&error));
g_object_unref (task);
return;
}