Package: gftp-gtk Version: 2.0.18-14 Severity: minor Hi,
Here is the scenario: - Options > Start file transfer must not be ticked. - Connect to an FTP and enqueue a file - Right click and select "Stop Transfer" - Right click and select "Start Transfer" There is a race condition (see file gtk/transfer.c): - update_downloads : unalloc transdata->transfer [= tdata] - stop_transfer : structmutex is freed Here is the patch to fix it. Once clicked on "Stop Transfer" (transfers are "Waiting..."), the treeview is updated (cleared). Matthieu -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (600, 'unstable'), (500, 'stable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16.19-matt Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages gftp-gtk depends on: ii gftp-common 2.0.18-14 shared files for other gFTP packag ii libatk1.0-0 1.11.4-2 The ATK accessibility toolkit ii libc6 2.3.6-15 GNU C Library: Shared libraries ii libcairo2 1.0.4-2 The Cairo 2D vector graphics libra ii libfontconfig1 2.3.2-7 generic font configuration library ii libglib2.0-0 2.10.3-2 The GLib library of C routines ii libgtk2.0-0 2.8.18-1 The GTK+ graphical user interface ii libpango1.0-0 1.12.3-1 Layout and rendering of internatio ii libx11-6 2:1.0.0-6 X11 client-side library ii libxcursor1 1.1.5.2-5 X cursor management library ii libxext6 1:1.0.0-4 X11 miscellaneous extension librar ii libxfixes3 1:3.0.1.2-4 X11 miscellaneous 'fixes' extensio ii libxi6 1:1.0.0-5 X11 Input extension library ii libxinerama1 1:1.0.1-4 X11 Xinerama extension library ii libxrandr2 2:1.1.0.2-4 X11 RandR extension library ii libxrender1 1:0.9.0.2-4 X Rendering Extension client libra gftp-gtk recommends no packages. -- no debconf information
--- transfer.c.orig 2006-06-28 21:32:46.000000000 +0200 +++ transfer.c 2006-06-28 21:33:37.000000000 +0200 @@ -609,9 +609,10 @@ num_transfers_in_progress--; } - if (!tdata->show && tdata->started) + if ((!tdata->show && tdata->started) || + (tdata->done && !tdata->started)) { - transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), + transdata = gtk_ctree_node_get_row_data (GTK_CTREE (dlwdw), tdata->user_data); if (transdata != NULL) g_free (transdata);