Bug #51650 [Bgs]: gzinflate return values don't match docs
| From: | marcus at synchromedia dot co dot uk | Date: | Mon, 10 May 2010 08:52:18 +0000 |
| Subject: | Bug #51650 [Bgs]: gzinflate return values don't match docs | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-4346@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=51650&edit=1
ID: 51650
User updated by: marcus at synchromedia dot co dot uk
Reported by: marcus at synchromedia dot co dot uk
Summary: gzinflate return values don't match docs
Status: Bogus
Type: Bug
Package: Documentation problem
Operating System: all
PHP Version: 5.2.14, 5.3.x
New Comment:
It's true that it doesn't explicitly say that, but it is still the case
that 5.2 returns an
error but 5.3 does not. Exactly why there is a difference isn't really
that important - that
there _is_ a difference is a BC break, and that's definitely not bogus.
It's also been
independently verified courtesy of felipe.
As I said when I reported this: "This is either a docs problem or a BC
break" - when
documentation doesn't match behaviour, either the behaviour or the
documentation is wrong -
you can't have it both ways. Since you're saying the docs are right, the
behaviour must be
wrong.
If it doesn't complain about invalid input data, what use is the return
value? I guess there
might be a few other circumstances such as running out of memory or
missing the input value,
but both of those would be caught and reported by other PHP mechanisms.
If the parameter was
missing atogether it would produce a compile-time error (i.e. nothing to
do with a return
value), but losing the ability to spot errors at runtime is a serious
loss - it certainly
caused problems for my app, which is why I reported this in the first
place.
Previous Comments:
------------------------------------------------------------------------
[2010-05-09 22:29:04] markskilbeck@php.net
The documentation does not say that gzinflate will return false if the
data passed
has not been deflated.
------------------------------------------------------------------------
[2010-04-23 18:32:27] felipe@php.net
I can reproduce it on PHP 5.2.14-dev.
------------------------------------------------------------------------
[2010-04-23 17:21:05] marcus at synchromedia dot co dot uk
Description:
------------
gzinflate is supposed to return false if it tries to inflate something
that's not
valid deflated data. It does this on PHP 5.2, but returns an empty
string in 5.3.
This is either a docs problem or a BC break between 5.2 and 5.3. I can't
find
anything in bugs, docs, release notes or the 5.2 to 5.3 upgrade guide
about this.
Test script:
---------------
<?php
$a = gzdeflate('abc');
$b = gzinflate($a);
var_dump($b);
$c = gzinflate('abc');
var_dump($c);
?>
Expected result:
----------------
(I get this under PHP 5.2.4 on linux)
string(3) "abc"
PHP Warning: gzinflate(): buffer error in test.php on line 5
bool(false)
Actual result:
--------------
(I get this from PHP 5.3.2 built from MacPorts on OS X)
string(3) "abc"
string(0) ""
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=51650&edit=1