public function ArchiveTar::_readLongHeader in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Archiver/ArchiveTar.php \Drupal\Core\Archiver\ArchiveTar::_readLongHeader()
Parameters
$v_header:
Return value
bool
2 calls to ArchiveTar::_readLongHeader()
- ArchiveTar::_extractInString in core/
lib/ Drupal/ Core/ Archiver/ ArchiveTar.php - This method extract from the archive one file identified by $p_filename. The return value is a string with the file content, or null on error.
- ArchiveTar::_extractList in core/
lib/ Drupal/ Core/ Archiver/ ArchiveTar.php
File
- core/
lib/ Drupal/ Core/ Archiver/ ArchiveTar.php, line 1818
Class
Namespace
Drupal\Core\ArchiverCode
public function _readLongHeader(&$v_header) {
$v_filename = '';
$v_filesize = $v_header['size'];
$n = floor($v_header['size'] / 512);
for ($i = 0; $i < $n; $i++) {
$v_content = $this
->_readBlock();
$v_filename .= $v_content;
}
if ($v_header['size'] % 512 != 0) {
$v_content = $this
->_readBlock();
$v_filename .= $v_content;
}
// ----- Read the next header
$v_binary_data = $this
->_readBlock();
if (!$this
->_readHeader($v_binary_data, $v_header)) {
return false;
}
$v_filename = rtrim(substr($v_filename, 0, $v_filesize), "\0");
$v_header['filename'] = $v_filename;
if ($this
->_maliciousFilename($v_filename)) {
$this
->_error('Malicious .tar detected, file "' . $v_filename . '" will not install in desired directory tree');
return false;
}
return true;
}