SFTP: don't attempt to parse unsupported attributes

This commit is contained in:
terrafrost 2021-11-11 19:50:52 -06:00
parent fe4dc433cc
commit 40035dc59c

View File

@ -3254,6 +3254,36 @@ class Net_SFTP extends Net_SSH2
$attr['type'] = $type; $attr['type'] = $type;
} }
foreach ($this->attributes as $key => $value) { foreach ($this->attributes as $key => $value) {
switch ($flags & $key) {
case NET_SFTP_ATTR_UIDGID:
if ($this->version > 3) {
continue 2;
}
break;
case NET_SFTP_ATTR_CREATETIME:
case NET_SFTP_ATTR_MODIFYTIME:
case NET_SFTP_ATTR_ACL:
case NET_SFTP_ATTR_OWNERGROUP:
case NET_SFTP_ATTR_SUBSECOND_TIMES:
if ($this->version < 4) {
continue 2;
}
break;
case NET_SFTP_ATTR_BITS:
if ($this->version < 5) {
continue 2;
}
break;
case NET_SFTP_ATTR_ALLOCATION_SIZE:
case NET_SFTP_ATTR_TEXT_HINT:
case NET_SFTP_ATTR_MIME_TYPE:
case NET_SFTP_ATTR_LINK_COUNT:
case NET_SFTP_ATTR_UNTRANSLATED_NAME:
case NET_SFTP_ATTR_CTIME:
if ($this->version < 6) {
continue 2;
}
}
switch ($flags & $key) { switch ($flags & $key) {
case NET_SFTP_ATTR_SIZE: // 0x00000001 case NET_SFTP_ATTR_SIZE: // 0x00000001
// The size attribute is defined as an unsigned 64-bit integer. // The size attribute is defined as an unsigned 64-bit integer.