Fix bug #71354 - remove UMR when size is 0

This commit is contained in:
Stanislav Malyshev 2016-01-13 16:32:29 -08:00
parent 74dcbe1299
commit 13ad4d3e97
3 changed files with 14 additions and 0 deletions

View File

@ -4884,6 +4884,7 @@ PHP_METHOD(PharFileInfo, getContent)
phar_seek_efp(link, 0, SEEK_SET, 0, 0 TSRMLS_CC);
Z_TYPE_P(return_value) = IS_STRING;
Z_STRVAL_P(return_value) = NULL;
Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0);
if (!Z_STRVAL_P(return_value)) {

View File

@ -0,0 +1,13 @@
--TEST--
Phar: bug #71354: Heap corruption in tar/zip/phar parser.
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
--FILE--
<?php
$p = new PharData(__DIR__."/bug71354.tar");
var_dump($p['aaaa']->getContent());
?>
DONE
--EXPECT--
string(0) ""
DONE

BIN
ext/phar/tests/bug71354.tar Normal file

Binary file not shown.