SFTP: fix issue with get() downloading to files / streams

the code that's being removed has its origins in 65193d9a25. in that commit the packet length is set outside of the while loop. this would continue to be the case until https://github.com/phpseclib/phpseclib/pull/945.
This commit is contained in:
terrafrost 2023-08-28 08:27:41 -05:00
parent 0f23be3188
commit 320c43a4a0
2 changed files with 13 additions and 8 deletions

View File

@ -2748,14 +2748,6 @@ class Net_SFTP extends Net_SSH2
}
}
if ($length > 0 && $length <= $offset - $start) {
if ($local_file === false) {
$content = substr($content, 0, $length);
} else {
ftruncate($fp, $length + $res_offset);
}
}
if ($fclose_check) {
fclose($fp);

View File

@ -777,5 +777,18 @@ class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
$stat2 = $sftp->stat(self::$scratchDir);
$this->assertSame($stat['uid'], $stat2['uid']);
$this->assertSame($stat['gid'], $stat2['gid']);
return $sftp;
}
/**
* @depends testChownChgrp
* @group github1934
*/
public function testCallableGetWithLength($sftp)
{
$sftp->put('test.txt', 'zzzzz');
$sftp->get('test.txt', function($data) {}, 0, 1);
$this->assertTrue(true);
}
}