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