Skip to content

Commit ef0a039

Browse files
committed
MC-40559 : Stabilize Integration Tests
1 parent 9e18727 commit ef0a039

File tree

1 file changed

+18
-6
lines changed
  • lib/internal/Magento/Framework/Archive

1 file changed

+18
-6
lines changed

lib/internal/Magento/Framework/Archive/Tar.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -447,12 +447,7 @@ protected function _extractFileHeader()
447447

448448
$header = unpack(self::_getFormatParseHeader(), $headerBlock);
449449

450-
$header['mode'] = octdec($header['mode']);
451-
$header['uid'] = octdec($header['uid']);
452-
$header['gid'] = octdec($header['gid']);
453-
$header['size'] = octdec($header['size']);
454-
$header['mtime'] = octdec($header['mtime']);
455-
$header['checksum'] = octdec($header['checksum']);
450+
$header = $this->convertOctToDec($header);
456451

457452
if ($header['type'] == "5") {
458453
$header['size'] = 0;
@@ -486,6 +481,23 @@ protected function _extractFileHeader()
486481
return false;
487482
}
488483

484+
/**
485+
* Converts octal numbers to decimal ones for specific header types.
486+
*
487+
* @param array $header
488+
* @return array
489+
*/
490+
private function convertOctToDec(array $header): array
491+
{
492+
$typesToConvert = ['mode', 'uid', 'gid', 'size', 'mtime', 'checksum'];
493+
foreach ($typesToConvert as $type) {
494+
$octNum = preg_replace('/[^0-7]/', '', $header[$type]);
495+
$header[$type] = octdec($octNum);
496+
}
497+
498+
return $header;
499+
}
500+
489501
/**
490502
* Extract next file from tarball by its $header information and save it to $destination
491503
*

0 commit comments

Comments
 (0)