svn: /php/php-src/trunk/ext/zlib/ tests/gzuncompress_error1.phpt zlib.c
| From: | Jani Taskinen | Date: | Wed, 09 Dec 2009 20:33:31 +0000 |
| Subject: | svn: /php/php-src/trunk/ext/zlib/ tests/gzuncompress_error1.phpt zlib.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-61222@lists.php.net to get a copy of this message | ||
jani Wed, 09 Dec 2009 20:33:31 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=291931
Log:
- Fixed bug #47179 (gzuncompress does not report expcted error)
Bug: http://bugs.php.net/47179 (Open) gzuncompress does not
report expcted error
Changed paths:
U php/php-src/trunk/ext/zlib/tests/gzuncompress_error1.phpt
U php/php-src/trunk/ext/zlib/zlib.c
Modified: php/php-src/trunk/ext/zlib/tests/gzuncompress_error1.phpt
===================================================================
--- php/php-src/trunk/ext/zlib/tests/gzuncompress_error1.phpt 2009-12-09 20:32:13 UTC (rev 291930)
+++ php/php-src/trunk/ext/zlib/tests/gzuncompress_error1.phpt 2009-12-09 20:33:31 UTC (rev 291931)
@@ -1,7 +1,5 @@
--TEST--
Test gzuncompress() function : error conditions
---XFAIL--
-Test will fail until bug #47179 resolved; no error when $length too small
--SKIPIF--
<?php
if (!extension_loaded("zlib")) {
@@ -16,8 +14,6 @@
* Alias to functions:
*/
-
-
echo "*** Testing gzuncompress() : error conditions ***\n";
// Zero arguments
@@ -34,14 +30,12 @@
echo "\n-- Testing with Unicode string --\n";
var_dump(gzuncompress($data, $length));
-
echo "\n-- Testing with a buffer that is too small --\n";
$short_len = strlen($data) - 1;
$compressed = gzcompress(b"$data");
var_dump(gzuncompress($compressed, $short_len));
-
echo "\n-- Testing with incorrect arguments --\n";
var_dump(gzuncompress(123));
@@ -77,7 +71,8 @@
NULL
-- Testing with a buffer that is too small --
-Warning: gzuncompress(): buffer error in %s on line %d
+
+Warning: gzuncompress(): insufficient memory in %s on line %d
bool(false)
-- Testing with incorrect arguments --
@@ -90,4 +85,4 @@
Warning: gzuncompress() expects parameter 2 to be long, Unicode string given in %s on line %d
NULL
-===DONE===
\ No newline at end of file
+===DONE===
Modified: php/php-src/trunk/ext/zlib/zlib.c
===================================================================
--- php/php-src/trunk/ext/zlib/zlib.c 2009-12-09 20:32:13 UTC (rev 291930)
+++ php/php-src/trunk/ext/zlib/zlib.c 2009-12-09 20:33:31 UTC (rev 291931)
@@ -321,10 +321,10 @@
*buf = NULL;
*len = 0;
- buffer.size = Z->avail_in;
+ buffer.size = (max && (max < Z->avail_in)) ? max : Z->avail_in;
do {
- if ((max && (max < buffer.used)) || !(buffer.aptr = erealloc_recoverable(buffer.data,
buffer.size))) {
+ if ((max && (max <= buffer.used)) || !(buffer.aptr = erealloc_recoverable(buffer.data,
buffer.size))) {
status = Z_MEM_ERROR;
} else {
buffer.data = buffer.aptr;