summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/xfer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/xfer.c b/src/core/xfer.c
index 112fee1bf..3a2f174d0 100644
--- a/src/core/xfer.c
+++ b/src/core/xfer.c
@@ -81,12 +81,17 @@ int xfer_vredirect ( struct interface *intf, int type, va_list args ) {
* xfer_vreopen(), we create a temporary interface in
* order to be able to send xfer_window_changed() to
* the parent.
+ *
+ * If redirection fails, then send intf_close() to the
+ * parent interface.
*/
intf_plug ( &tmp, dest );
rc = xfer_vreopen ( dest, type, args );
if ( rc == 0 ) {
xfer_window_changed ( dest );
xfer_window_changed ( &tmp );
+ } else {
+ intf_close ( &tmp, rc );
}
intf_unplug ( &tmp );
}