mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
Fixed bug#53579 (stream_get_contents() segfaults on ziparchive streams)
Also added the filename being access to the stream_get_meta_data() array
This commit is contained in:
parent
f13d9c0e03
commit
3ce18aa852
2
NEWS
2
NEWS
@ -81,8 +81,10 @@
|
||||
. Fixed memory leaked introduced by the NULL poisoning patch (Mateusz Kocielski, Pierre)
|
||||
|
||||
- Zip extension:
|
||||
. Added the filename into the return value of stream_get_meta_data(). (Hannes)
|
||||
. Fixed bug #53568 (swapped memset arguments in struct initialization).
|
||||
(crrodriguez at opensuse dot org)
|
||||
. Fixed bug #53579 (stream_get_contents() segfaults on ziparchive streams) (Hannes)
|
||||
|
||||
09 Dec 2010, PHP 5.3.4
|
||||
- Upgraded bundled Sqlite3 to version 3.7.3. (Ilia)
|
||||
|
44
ext/zip/tests/bug53579.phpt
Normal file
44
ext/zip/tests/bug53579.phpt
Normal file
@ -0,0 +1,44 @@
|
||||
--TEST--
|
||||
Bug #53579 (stream_get_contents() segfaults on ziparchive streams)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
/* $Id: oo_stream.phpt 260091 2008-05-21 09:27:41Z pajoye $ */
|
||||
if(!extension_loaded('zip')) die('skip');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dirname = dirname(__FILE__) . '/';
|
||||
$file = $dirname . 'test_with_comment.zip';
|
||||
include $dirname . 'utils.inc';
|
||||
$zip = new ZipArchive;
|
||||
if (!$zip->open($file)) {
|
||||
exit('failed');
|
||||
}
|
||||
$fp = $zip->getStream('foo');
|
||||
|
||||
var_dump($fp);
|
||||
if(!$fp) exit("\n");
|
||||
$contents = stream_get_contents($fp);
|
||||
|
||||
fclose($fp);
|
||||
$zip->close();
|
||||
var_dump($contents);
|
||||
|
||||
|
||||
$fp = fopen('zip://' . dirname(__FILE__) . '/test_with_comment.zip#foo', 'rb');
|
||||
if (!$fp) {
|
||||
exit("cannot open\n");
|
||||
}
|
||||
$contents = stream_get_contents($fp);
|
||||
var_dump($contents);
|
||||
fclose($fp);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
resource(%d) of type (stream)
|
||||
string(5) "foo
|
||||
|
||||
"
|
||||
string(5) "foo
|
||||
|
||||
"
|
@ -216,6 +216,7 @@ php_stream *php_stream_zip_open(char *filename, char *path, char *mode STREAMS_D
|
||||
self->stream = NULL;
|
||||
self->cursor = 0;
|
||||
stream = php_stream_alloc(&php_stream_zipio_ops, self, NULL, mode);
|
||||
stream->orig_path = estrdup(path);
|
||||
} else {
|
||||
zip_close(stream_za);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user