mirror of
https://github.com/danog/tgseclib.git
synced 2024-11-26 20:24:39 +01:00
SFTP: improve handling of malformed packets
This commit is contained in:
parent
677ae387b0
commit
8df35cc368
@ -3049,7 +3049,9 @@ class Net_SFTP extends Net_SSH2
|
||||
return $temp;
|
||||
}
|
||||
|
||||
$this->curTimeout = false;
|
||||
// in SSH2.php the timeout is cumulative per function call. eg. exec() will
|
||||
// timeout after 10s. but for SFTP.php it's cumulative per packet
|
||||
$this->curTimeout = $this->timeout;
|
||||
|
||||
$start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
|
||||
|
||||
@ -3070,6 +3072,13 @@ class Net_SFTP extends Net_SSH2
|
||||
$tempLength = $length;
|
||||
$tempLength-= strlen($this->packet_buffer);
|
||||
|
||||
|
||||
// 256 * 1024 is what SFTP_MAX_MSG_LENGTH is set to in OpenSSH's sftp-common.h
|
||||
if ($tempLength > 256 * 1024) {
|
||||
user_error('Invalid SFTP packet size');
|
||||
return false;
|
||||
}
|
||||
|
||||
// SFTP packet type and data payload
|
||||
while ($tempLength > 0) {
|
||||
$temp = $this->_get_channel_packet(NET_SFTP_CHANNEL, true);
|
||||
|
Loading…
Reference in New Issue
Block a user