Skip to content

Fix string leaks when transfer jobs are queued

Leak report

Direct leak of 14 byte(s) in 2 object(s) allocated from:
    #0 0x7f4dc1772fc5 in malloc
    #1 0x7f4dc0397d52 in g_malloc glib/glib/gmem.c:100:13
    #2 0x7f4dc04151e4 in g_strdup glib/glib/gstrfuncs.c:323:17
    #3 0x5644fc70f367 in g_strdup_inline /usr/local/include/glib-2.0/glib/gstrfuncs.h:321:10
    #4 0x5644fc70f367 in thunar_transfer_job_fill_target_device_info thunar/thunar/thunar-transfer-job.c:1479:47
    #5 0x5644fc70f367 in thunar_transfer_job_can_start thunar/thunar/thunar-transfer-job.c:1597:3
    #6 0x5644fc668760 in thunar_progress_dialog_add_job thunar/thunar/thunar-progress-dialog.c:372:10
    #7 0x5644fc563c18 in thunar_application_launch thunar/thunar/thunar-application.c:1014:3
    #8 0x5644fc564956 in thunar_application_collect_and_launch thunar/thunar/thunar-application.c:916:7
    #9 0x5644fc56452e in thunar_application_copy_into thunar/thunar/thunar-application.c:2236:3
    #10 0x5644fc5845c4 in thunar_clipboard_manager_contents_received thunar/thunar/thunar-clipboard-manager.c:342:9
    #11 0x7f4dbfba135b in selection_received gtk/gtk/gtkclipboard.c:960:3
    #12 0x7f4dbf50ac99 in _gtk_marshal_VOID__BOXED_UINTv gtk/builddir/gtk/gtkmarshalers.c:3608:3
    #13 0x7f4dc07081ff in _g_closure_invoke_va glib/gobject/gclosure.c:980:7
    #14 0x7f4dc0774099 in signal_emit_valist_unlocked glib/gobject/gsignal.c:3438:8
    #15 0x7f4dc0776e2b in g_signal_emit_by_name glib/gobject/gsignal.c:3638:11
    #16 0x7f4dbf94a59d in gtk_selection_retrieval_report gtk/gtk/gtkselection.c:3190:3
    #17 0x7f4dbf94a59d in gtk_selection_convert gtk/gtk/gtkselection.c:1192:4
    #18 0x7f4dbfba0650 in gtk_clipboard_real_request_contents gtk/gtk/gtkclipboard.c:1023:3
    #19 0x7f4dbfb9cf5d in gtk_clipboard_request_contents gtk/gtk/gtkclipboard.c:994:3
    #20 0x5644fc583f6c in thunar_clipboard_manager_paste_files thunar/thunar/thunar-clipboard-manager.c:752:3
    #21 0x5644fc55a01f in thunar_action_manager_action_paste thunar/thunar/thunar-action-manager.c:3137:3
[...snip...]

Direct leak of 14 byte(s) in 2 object(s) allocated from:
    #0 0x7f4dc1772fc5 in malloc
    #1 0x7f4dc0397d52 in g_malloc glib/glib/gmem.c:100:13
    #2 0x7f4dc04151e4 in g_strdup glib/glib/gstrfuncs.c:323:17
    #3 0x5644fc70f1e9 in g_strdup_inline /usr/local/include/glib-2.0/glib/gstrfuncs.h:321:10
    #4 0x5644fc70f1e9 in thunar_transfer_job_fill_source_device_info thunar/thunar/thunar-transfer-job.c:1449:43
    #5 0x5644fc70f1e9 in thunar_transfer_job_can_start thunar/thunar/thunar-transfer-job.c:1595:3
    #6 0x5644fc668760 in thunar_progress_dialog_add_job thunar/thunar/thunar-progress-dialog.c:372:10
    #7 0x5644fc563c18 in thunar_application_launch thunar/thunar/thunar-application.c:1014:3
    #8 0x5644fc564956 in thunar_application_collect_and_launch thunar/thunar/thunar-application.c:916:7
    #9 0x5644fc56452e in thunar_application_copy_into thunar/thunar/thunar-application.c:2236:3
    #10 0x5644fc5845c4 in thunar_clipboard_manager_contents_received thunar/thunar/thunar-clipboard-manager.c:342:9
    #11 0x7f4dbfba135b in selection_received gtk/gtk/gtkclipboard.c:960:3
    #12 0x7f4dbf50ac99 in _gtk_marshal_VOID__BOXED_UINTv gtk/builddir/gtk/gtkmarshalers.c:3608:3
    #13 0x7f4dc07081ff in _g_closure_invoke_va glib/gobject/gclosure.c:980:7
    #14 0x7f4dc0774099 in signal_emit_valist_unlocked glib/gobject/gsignal.c:3438:8
    #15 0x7f4dc0776e2b in g_signal_emit_by_name glib/gobject/gsignal.c:3638:11
    #16 0x7f4dbf94a59d in gtk_selection_retrieval_report gtk/gtk/gtkselection.c:3190:3
    #17 0x7f4dbf94a59d in gtk_selection_convert gtk/gtk/gtkselection.c:1192:4
    #18 0x7f4dbfba0650 in gtk_clipboard_real_request_contents gtk/gtk/gtkclipboard.c:1023:3
    #19 0x7f4dbfb9cf5d in gtk_clipboard_request_contents gtk/gtk/gtkclipboard.c:994:3
    #20 0x5644fc583f6c in thunar_clipboard_manager_paste_files thunar/thunar/thunar-clipboard-manager.c:752:3
    #21 0x5644fc55a01f in thunar_action_manager_action_paste thunar/thunar/thunar-action-manager.c:3137:3
[...snip...]

Steps to reproduce

  • I triggered this bug while copying and pasting a ~500MB file a few times in the same directory
    • I have parallel transfers disabled

Testing

  • No issues were detected when testing the patch with UBSan, LSan, and ASan

Merge request reports

Loading