From 0531f713abef501f3f1262a2adf2bbd20ffac0a1 Mon Sep 17 00:00:00 2001 From: Jim Wigginton Date: Fri, 14 Oct 2011 05:46:18 +0000 Subject: [PATCH] - close local file if one is being used and if get() would return prematurely (thanks, Sascha.Pfalz!) git-svn-id: http://phpseclib.svn.sourceforge.net/svnroot/phpseclib/trunk@181 21d32557-59b3-4da0-833f-c5933fad653e --- phpseclib/Net/SFTP.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/phpseclib/Net/SFTP.php b/phpseclib/Net/SFTP.php index 36ced03f..3f06c763 100644 --- a/phpseclib/Net/SFTP.php +++ b/phpseclib/Net/SFTP.php @@ -1464,6 +1464,9 @@ class Net_SFTP extends Net_SSH2 { while ($read < $size) { $packet = pack('Na*N3', strlen($handle), $handle, 0, $read, 1 << 20); if (!$this->_send_sftp_packet(NET_SFTP_READ, $packet)) { + if ($local_file !== false) { + fclose($fp); + } return false; } @@ -1484,10 +1487,17 @@ class Net_SFTP extends Net_SSH2 { break 2; default: user_error('Expected SSH_FXP_DATA or SSH_FXP_STATUS', E_USER_NOTICE); + if ($local_file !== false) { + fclose($fp); + } return false; } } + if ($local_file !== false) { + fclose($fp); + } + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { return false; }