PATH:
opt
/
alt
/
tests
/
alt-php82-pecl-rar_4.2.0-3.el8
/
tests
--TEST-- Bug 76592: solid files are partially extracted --SKIPIF-- <?php if (!extension_loaded("rar")) die("skip"); if (PHP_OS != 'Linux') die('skip for linux'); if (PHP_VERSION_ID < 50400) die("skip for PHP 5.4+"); --FILE-- <?php $before = hex2bin('526172211a07010030f8db480d01050900080101c5808085800093f4589f2e02030b80808085800004808080858000b483020000000080380108746573742e6461740a031389bf735fa302a31c'); $after = hex2bin('a6e7161b0e0306be0000be000080000102514fe6dcc40b3900b38080053393f4589f2e02030b80808085800004808080858000b483020000000080380108746573742e6461740a031389bf735fa302a31c1d77565103050400'); $middle = file_get_contents('/dev/urandom', false, null, 0, 10 * 1024 * 1024) or die('failed file_get_contents'); $crc32hexbe = crc32($middle); $crc32le = pack('V', $crc32hexbe); $before = substr($before, 0, 50) . $crc32le . substr($before, 54); $after = substr($after, 0, 56) . $crc32le . substr($after, 60); $data = $before . $middle . $after; $file = tempnam('/tmp', 'rar'); file_put_contents($file, $data) or die('failed file_put contents'); $rar = \RarArchive::open($file) or die('Unable to open archive'); $rar->setAllowBroken(true); // we don't fixup the headers checksum, only the contents. Ignore the error $entry = $rar->getEntry('test.dat') or die('Unable to get entry'); $contents = stream_get_contents($entry->getStream(), $entry->getUnpackedSize()); $crc32_rar = $entry->getCrc(); $crc32_cont = dechex(crc32($contents)); $crc32_orig_content = dechex(crc32($contents)); unlink($file); echo 'orig content size: ', strlen($middle), "\n"; echo 'read content size: ', strlen($contents), "\n"; if ($crc32_rar !== $crc32_cont) { die("CRC values do not match"); } if ($crc32_rar !== $crc32_orig_content) { die("CRC values do not match (2)"); } ?> ==DONE== --EXPECT-- orig content size: 10485760 read content size: 10485760 ==DONE==
[+]
..
[-] multi.part3.rar
[edit]
[-] 080.phpt
[edit]
[-] 003.phpt
[edit]
[-] 079.phpt
[edit]
[-] 032.phpt
[edit]
[-] 108.phpt
[edit]
[-] 110.phpt
[edit]
[-] secret-crypted-none.rar
[edit]
[-] 042.phpt
[edit]
[-] store_method.rar
[edit]
[-] 001.phpt
[edit]
[-] 071.phpt
[edit]
[-] 059.phpt
[edit]
[-] 087.phpt
[edit]
[-] 006.phpt
[edit]
[-] 017.phpt
[edit]
[-] 105.phpt
[edit]
[-] 073.phpt
[edit]
[-] 099.phpt
[edit]
[-] 050.phpt
[edit]
[-] rar_unicode.rar
[edit]
[-] 109.phpt
[edit]
[-] 054.phpt
[edit]
[-] 103.phpt
[edit]
[-] 069.phpt
[edit]
[-] 096.phpt
[edit]
[-] garbage.part03.rar
[edit]
[-] rar_notrar.rar
[edit]
[-] 049.phpt
[edit]
[-] corrupted.rar
[edit]
[-] 038.phpt
[edit]
[-] 098.phpt
[edit]
[-] 112.phpt
[edit]
[-] 113.phpt
[edit]
[-] 107.phpt
[edit]
[-] 029.phpt
[edit]
[-] 075.phpt
[edit]
[-] 062.phpt
[edit]
[-] 007.phpt
[edit]
[-] 077.phpt
[edit]
[-] 106.phpt
[edit]
[-] multi.part1.rar
[edit]
[-] solid.rar
[edit]
[-] 089.phpt
[edit]
[-] 014.phpt
[edit]
[-] 068.phpt
[edit]
[-] 012.phpt
[edit]
[-] repeated_name.rar
[edit]
[-] 041.phpt
[edit]
[-] 010.phpt
[edit]
[-] 013.phpt
[edit]
[-] 030.phpt
[edit]
[-] 025.phpt
[edit]
[-] 088.phpt
[edit]
[-] 091.phpt
[edit]
[-] 035.phpt
[edit]
[-] linux_rar.rar
[edit]
[-] 086.phpt
[edit]
[-] 053.phpt
[edit]
[-] 004.phpt
[edit]
[-] 047.phpt
[edit]
[-] 018.phpt
[edit]
[-] php8compat.php.inc
[edit]
[-] empty_file.rar
[edit]
[-] encrypted_only_files.rar
[edit]
[-] 026.phpt
[edit]
[-] 4mb.rar
[edit]
[-] 097.phpt
[edit]
[-] 065.phpt
[edit]
[-] 027.phpt
[edit]
[-] 115.phpt
[edit]
[-] 019.phpt
[edit]
[-] 020.phpt
[edit]
[-] 078.phpt
[edit]
[-] rar5_multi.part1.rar
[edit]
[-] 074.phpt
[edit]
[-] commented.rar
[edit]
[-] 111.phpt
[edit]
[-] multi_broken.part1.rar
[edit]
[-] 036.phpt
[edit]
[-] 055.phpt
[edit]
[-] 002.phpt
[edit]
[-] dirlink_unix.rar
[edit]
[-] encrypted_headers.rar
[edit]
[-] 040.phpt
[edit]
[-] 081.phpt
[edit]
[-] 085.phpt
[edit]
[-] 009.phpt
[edit]
[-] 104.phpt
[edit]
[-] 114.phpt
[edit]
[-] sparsefiles_rar.rar
[edit]
[-] 094.phpt
[edit]
[-] 051.phpt
[edit]
[-] 037.phpt
[edit]
[-] 043.phpt
[edit]
[-] 031.phpt
[edit]
[-] 101.phpt
[edit]
[-] 005.phpt
[edit]
[-] 058.phpt
[edit]
[-] 066.phpt
[edit]
[-] 008.phpt
[edit]
[-] rar5_multi.part2.rar
[edit]
[-] 102.phpt
[edit]
[-] multi.part2.rar
[edit]
[-] 028.phpt
[edit]
[-] 011.phpt
[edit]
[-] 052.phpt
[edit]
[-] 039.phpt
[edit]
[-] 044.phpt
[edit]
[-] latest_winrar.rar
[edit]
[-] 092.phpt
[edit]
[-] 057.phpt
[edit]
[-] 064.phpt
[edit]
[-] 070.phpt
[edit]
[-] 061.phpt
[edit]
[-] 056.phpt
[edit]
[-] 090.phpt
[edit]
[-] 015.phpt
[edit]
[-] 046.phpt
[edit]
[-] 072.phpt
[edit]
[-] 063.phpt
[edit]
[-] rar5-links.rar
[edit]
[-] 082.phpt
[edit]
[-] 022.phpt
[edit]
[-] 016.phpt
[edit]
[-] 033.phpt
[edit]
[-] 093.phpt
[edit]
[-] directories.rar
[edit]
[-] 060.phpt
[edit]
[-] 021.phpt
[edit]
[-] 076.phpt
[edit]
[-] secret-none.rar
[edit]
[-] 023.phpt
[edit]
[-] 095.phpt
[edit]
[-] 100.phpt
[edit]
[-] dirs_and_extra_headers.rar
[edit]
[-] 048.phpt
[edit]
[-] 067.phpt
[edit]
[-] 024.phpt
[edit]
[-] 034.phpt
[edit]