mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Convert some warnings to Error in zlib extension
Closes GH-4985
This commit is contained in:
parent
66659d6cf6
commit
928afd8fb7
@ -5,9 +5,13 @@ gzcompress()/gzuncompress() and invalid params
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(gzcompress("", 1000));
|
||||
var_dump(gzcompress("", -1));
|
||||
try {
|
||||
var_dump(gzcompress("", 1000));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzcompress("", -1));
|
||||
var_dump(gzcompress(""));
|
||||
var_dump(gzcompress("", 9));
|
||||
|
||||
@ -18,8 +22,17 @@ Desolation, grief and agony";
|
||||
var_dump($data1 = gzcompress($string));
|
||||
var_dump($data2 = gzcompress($string, 9));
|
||||
|
||||
var_dump(gzuncompress("", 1000));
|
||||
var_dump(gzuncompress("", -1));
|
||||
try {
|
||||
var_dump(gzuncompress("", 1000));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump(gzuncompress("", -1));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzuncompress(""));
|
||||
var_dump(gzuncompress("", 9));
|
||||
@ -29,11 +42,9 @@ var_dump(gzuncompress($data2));
|
||||
$data2[4] = 0;
|
||||
var_dump(gzuncompress($data2));
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: gzcompress(): compression level (1000) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
Compression level (1000) must be within -1..9
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
@ -42,9 +53,7 @@ string(%d) "%a"
|
||||
|
||||
Warning: gzuncompress(): %s error in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzuncompress(): length (-1) must be greater or equal zero in %s on line %d
|
||||
bool(false)
|
||||
Length (-1) must be greater or equal zero
|
||||
|
||||
Warning: gzuncompress(): %s error in %s on line %d
|
||||
bool(false)
|
||||
@ -60,4 +69,3 @@ Desolation, grief and agony"
|
||||
|
||||
Warning: gzuncompress(): %s error in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
|
@ -5,7 +5,12 @@ gzdeflate()/gzinflate() and invalid params
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(gzdeflate("", 1000));
|
||||
try {
|
||||
var_dump(gzcompress("", 1000));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzdeflate("", -1));
|
||||
|
||||
var_dump(gzdeflate(""));
|
||||
@ -20,7 +25,12 @@ var_dump($data2 = gzdeflate($string, 9));
|
||||
|
||||
var_dump(gzinflate(""));
|
||||
var_dump(gzinflate("asfwe", 1000));
|
||||
var_dump(gzinflate("asdf", -1));
|
||||
|
||||
try {
|
||||
var_dump(gzinflate("asdf", -1));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzinflate("asdf"));
|
||||
var_dump(gzinflate("asdf", 9));
|
||||
@ -30,11 +40,9 @@ var_dump(gzinflate($data2));
|
||||
$data2[4] = 0;
|
||||
var_dump(gzinflate($data2));
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: gzdeflate(): compression level (1000) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
Compression level (1000) must be within -1..9
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
@ -46,9 +54,7 @@ bool(false)
|
||||
|
||||
Warning: gzinflate(): data error in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzinflate(): length (-1) must be greater or equal zero in %s on line %d
|
||||
bool(false)
|
||||
Length (-1) must be greater or equal zero
|
||||
|
||||
Warning: gzinflate(): data error in %s on line %d
|
||||
bool(false)
|
||||
@ -64,4 +70,3 @@ Desolation, grief and agony"
|
||||
|
||||
Warning: gzinflate(): data error in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
|
@ -5,9 +5,21 @@ gzencode() and invalid params
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(gzencode("", -10));
|
||||
var_dump(gzencode("", 100));
|
||||
var_dump(gzencode("", 1, 100));
|
||||
try {
|
||||
var_dump(gzencode("", -10));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
try {
|
||||
var_dump(gzencode("", 100));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
try {
|
||||
var_dump(gzencode("", 1, 100));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzencode("", -1, ZLIB_ENCODING_GZIP));
|
||||
var_dump(gzencode("", 9, ZLIB_ENCODING_DEFLATE));
|
||||
@ -17,27 +29,22 @@ Light in this temple
|
||||
Light in my truth
|
||||
Lies in the darkness";
|
||||
|
||||
var_dump(gzencode($string, 9, 3));
|
||||
try {
|
||||
var_dump(gzencode($string, 9, 3));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
var_dump(gzencode($string, -1, ZLIB_ENCODING_GZIP));
|
||||
var_dump(gzencode($string, 9, ZLIB_ENCODING_DEFLATE));
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: gzencode(): compression level (-10) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzencode(): compression level (100) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzencode(): encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
Compression level (-10) must be within -1..9
|
||||
Compression level (100) must be within -1..9
|
||||
Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
|
||||
Warning: gzencode(): encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
string(%d) "%a"
|
||||
string(%d) "%a"
|
||||
Done
|
||||
|
@ -9,15 +9,23 @@ if (!extension_loaded("zlib")) {
|
||||
--FILE--
|
||||
<?php
|
||||
$badResource = fopen("php://memory", "r+");
|
||||
var_dump(deflate_add($badResource, "test"));
|
||||
|
||||
try {
|
||||
var_dump(deflate_add($badResource, "test"));
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$resource = deflate_init(ZLIB_ENCODING_DEFLATE);
|
||||
$badFlushType = 6789;
|
||||
var_dump(deflate_add($resource, "test", $badFlushType));
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: deflate_add(): Invalid deflate resource in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: deflate_add(): flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH in %s on line %d
|
||||
bool(false)
|
||||
try {
|
||||
var_dump(deflate_add($resource, "test", $badFlushType));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
deflate_add(): supplied resource is not a valid zlib deflate resource
|
||||
Flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH
|
||||
|
@ -8,24 +8,41 @@ if (!extension_loaded("zlib")) {
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(deflate_init(42));
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => 42]));
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => -2]));
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['memory' => 0]));
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['memory' => 10]));
|
||||
|
||||
try {
|
||||
var_dump(deflate_init(42));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => 42]));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => -2]));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['memory' => 0]));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump(deflate_init(ZLIB_ENCODING_DEFLATE, ['memory' => 10]));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: deflate_init(): encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: deflate_init(): compression level (42) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: deflate_init(): compression level (-2) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: deflate_init(): compression memory level (0) must be within 1..9 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: deflate_init(): compression memory level (10) must be within 1..9 in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
Encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
Compression level (42) must be within -1..9
|
||||
Compression level (-2) must be within -1..9
|
||||
Compression memory level (0) must be within 1..9
|
||||
Compression memory level (10) must be within 1..9
|
||||
|
@ -23,24 +23,28 @@ echo "*** Testing gzcompress() : error conditions ***\n";
|
||||
echo "\n-- Testing with incorrect compression level --\n";
|
||||
$data = 'string_val';
|
||||
$bad_level = 99;
|
||||
var_dump(gzcompress($data, $bad_level));
|
||||
try {
|
||||
var_dump(gzcompress($data, $bad_level));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- Testing with invalid encoding --\n";
|
||||
$data = 'string_val';
|
||||
$level = 2;
|
||||
$encoding = 99;
|
||||
var_dump(gzcompress($data, $level, $encoding));
|
||||
try {
|
||||
var_dump(gzcompress($data, $level, $encoding));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
*** Testing gzcompress() : error conditions ***
|
||||
|
||||
-- Testing with incorrect compression level --
|
||||
|
||||
Warning: gzcompress(): compression level (99) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
Compression level (99) must be within -1..9
|
||||
|
||||
-- Testing with invalid encoding --
|
||||
|
||||
Warning: gzcompress(): encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
|
@ -24,23 +24,27 @@ $data = 'string_val';
|
||||
|
||||
echo "\n-- Testing with incorrect compression level --\n";
|
||||
$bad_level = 99;
|
||||
var_dump(gzdeflate($data, $bad_level));
|
||||
try {
|
||||
var_dump(gzdeflate($data, $bad_level));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- Testing with incorrect encoding --\n";
|
||||
$level = 2;
|
||||
$bad_encoding = 99;
|
||||
var_dump(gzdeflate($data, $level, $bad_encoding));
|
||||
try {
|
||||
var_dump(gzdeflate($data, $level, $bad_encoding));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
*** Testing gzdeflate() : error conditions ***
|
||||
|
||||
-- Testing with incorrect compression level --
|
||||
|
||||
Warning: gzdeflate(): compression level (99) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
Compression level (99) must be within -1..9
|
||||
|
||||
-- Testing with incorrect encoding --
|
||||
|
||||
Warning: gzdeflate(): encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
|
@ -26,22 +26,26 @@ $encoding_mode = FORCE_DEFLATE;
|
||||
|
||||
echo "\n-- Testing with incorrect compression level --\n";
|
||||
$bad_level = 99;
|
||||
var_dump(gzencode($data, $bad_level));
|
||||
try {
|
||||
var_dump(gzencode($data, $bad_level));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- Testing with incorrect encoding_mode --\n";
|
||||
$bad_mode = 99;
|
||||
var_dump(gzencode($data, $level, $bad_mode));
|
||||
try {
|
||||
var_dump(gzencode($data, $level, $bad_mode));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
*** Testing gzencode() : error conditions ***
|
||||
|
||||
-- Testing with incorrect compression level --
|
||||
|
||||
Warning: gzencode(): compression level (99) must be within -1..9 in %s on line %d
|
||||
bool(false)
|
||||
Compression level (99) must be within -1..9
|
||||
|
||||
-- Testing with incorrect encoding_mode --
|
||||
|
||||
Warning: gzencode(): encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
|
@ -8,15 +8,23 @@ if (!extension_loaded("zlib")) {
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$badResource = fopen("php://memory", "r+");
|
||||
var_dump(inflate_add($badResource, "test"));
|
||||
try {
|
||||
var_dump(inflate_add($badResource, "test"));
|
||||
} catch (\TypeError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
$resource = inflate_init(ZLIB_ENCODING_DEFLATE);
|
||||
$badFlushType = 6789;
|
||||
var_dump(inflate_add($resource, "test", $badFlushType));
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: inflate_add(): Invalid zlib.inflate resource in %s on line %d
|
||||
bool(false)
|
||||
try {
|
||||
var_dump(inflate_add($resource, "test", $badFlushType));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
Warning: inflate_add(): flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH in %s on line %d
|
||||
bool(false)
|
||||
?>
|
||||
--EXPECT--
|
||||
inflate_add(): supplied resource is not a valid zlib inflate resource
|
||||
Flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH
|
||||
|
@ -8,8 +8,13 @@ if (!extension_loaded("zlib")) {
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(inflate_init(42));
|
||||
|
||||
try {
|
||||
var_dump(inflate_init(42));
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: inflate_init(): encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
Encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE
|
||||
|
@ -44,7 +44,9 @@
|
||||
#undef gztell
|
||||
|
||||
int le_deflate;
|
||||
#define le_deflate_name "zlib deflate"
|
||||
int le_inflate;
|
||||
#define le_inflate_name "zlib inflate"
|
||||
|
||||
ZEND_DECLARE_MODULE_GLOBALS(zlib);
|
||||
|
||||
@ -65,14 +67,14 @@ static void php_zlib_free(voidpf opaque, voidpf address)
|
||||
|
||||
void deflate_rsrc_dtor(zend_resource *res)
|
||||
{
|
||||
z_stream *ctx = zend_fetch_resource(res, NULL, le_deflate);
|
||||
z_stream *ctx = zend_fetch_resource(res, le_deflate_name, le_deflate);
|
||||
deflateEnd(ctx);
|
||||
efree(ctx);
|
||||
}
|
||||
|
||||
void inflate_rsrc_dtor(zend_resource *res)
|
||||
{
|
||||
z_stream *ctx = zend_fetch_resource(res, NULL, le_inflate);
|
||||
z_stream *ctx = zend_fetch_resource(res, le_inflate_name, le_inflate);
|
||||
if (((php_zlib_context *) ctx)->inflateDict) {
|
||||
efree(((php_zlib_context *) ctx)->inflateDict);
|
||||
}
|
||||
@ -670,8 +672,8 @@ static PHP_FUNCTION(name) \
|
||||
} \
|
||||
} \
|
||||
if (level < -1 || level > 9) { \
|
||||
php_error_docref(NULL, E_WARNING, "compression level (" ZEND_LONG_FMT ") must be within -1..9", level); \
|
||||
RETURN_FALSE; \
|
||||
zend_value_error("Compression level (" ZEND_LONG_FMT ") must be within -1..9", level); \
|
||||
RETURN_THROWS(); \
|
||||
} \
|
||||
switch (encoding) { \
|
||||
case PHP_ZLIB_ENCODING_RAW: \
|
||||
@ -679,8 +681,8 @@ static PHP_FUNCTION(name) \
|
||||
case PHP_ZLIB_ENCODING_DEFLATE: \
|
||||
break; \
|
||||
default: \
|
||||
php_error_docref(NULL, E_WARNING, "encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE"); \
|
||||
RETURN_FALSE; \
|
||||
zend_value_error("Encoding mode must be either ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE"); \
|
||||
RETURN_THROWS(); \
|
||||
} \
|
||||
if ((out = php_zlib_encode(ZSTR_VAL(in), ZSTR_LEN(in), encoding, level)) == NULL) { \
|
||||
RETURN_FALSE; \
|
||||
@ -699,8 +701,8 @@ static PHP_FUNCTION(name) \
|
||||
RETURN_THROWS(); \
|
||||
} \
|
||||
if (max_len < 0) { \
|
||||
php_error_docref(NULL, E_WARNING, "length (" ZEND_LONG_FMT ") must be greater or equal zero", max_len); \
|
||||
RETURN_FALSE; \
|
||||
zend_value_error("Length (" ZEND_LONG_FMT ") must be greater or equal zero", max_len); \
|
||||
RETURN_THROWS(); \
|
||||
} \
|
||||
if (SUCCESS != php_zlib_decode(in_buf, in_len, &out_buf, &out_len, encoding, max_len)) { \
|
||||
RETURN_FALSE; \
|
||||
@ -785,7 +787,7 @@ static zend_bool zlib_create_dictionary_string(HashTable *options, char **dict,
|
||||
}
|
||||
efree(strings);
|
||||
if (!EG(exception)) {
|
||||
php_error_docref(NULL, E_WARNING, "dictionary entries must be non-empty strings");
|
||||
zend_value_error("Dictionary entries must be non-empty strings");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -795,7 +797,7 @@ static zend_bool zlib_create_dictionary_string(HashTable *options, char **dict,
|
||||
efree(ptr);
|
||||
} while (--ptr >= strings);
|
||||
efree(strings);
|
||||
php_error_docref(NULL, E_WARNING, "dictionary entries must not contain a NULL-byte");
|
||||
zend_value_error("Dictionary entries must not contain a NULL-byte");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -817,7 +819,7 @@ static zend_bool zlib_create_dictionary_string(HashTable *options, char **dict,
|
||||
} break;
|
||||
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING, "dictionary must be of type zero-terminated string or array, got %s", zend_get_type_by_const(Z_TYPE_P(option_buffer)));
|
||||
zend_type_error("dictionary must be of type zero-terminated string or array, got %s", zend_get_type_by_const(Z_TYPE_P(option_buffer)));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -844,8 +846,8 @@ PHP_FUNCTION(inflate_init)
|
||||
window = zval_get_long(option_buffer);
|
||||
}
|
||||
if (window < 8 || window > 15) {
|
||||
php_error_docref(NULL, E_WARNING, "zlib window size (lograithm) (" ZEND_LONG_FMT ") must be within 8..15", window);
|
||||
RETURN_FALSE;
|
||||
zend_value_error("zlib window size (logarithm) (" ZEND_LONG_FMT ") must be within 8..15", window);
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!zlib_create_dictionary_string(options, &dict, &dictlen)) {
|
||||
@ -858,8 +860,8 @@ PHP_FUNCTION(inflate_init)
|
||||
case PHP_ZLIB_ENCODING_DEFLATE:
|
||||
break;
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING, "encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE");
|
||||
RETURN_FALSE;
|
||||
zend_value_error("Encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
ctx = ecalloc(1, sizeof(php_zlib_context));
|
||||
@ -887,7 +889,6 @@ PHP_FUNCTION(inflate_init)
|
||||
php_error_docref(NULL, E_WARNING, "dictionary does not match expected dictionary (incorrect adler32 hash)");
|
||||
efree(php_ctx->inflateDict);
|
||||
php_ctx->inflateDict = NULL;
|
||||
RETURN_FALSE;
|
||||
EMPTY_SWITCH_DEFAULT_CASE()
|
||||
}
|
||||
}
|
||||
@ -916,9 +917,8 @@ PHP_FUNCTION(inflate_add)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!(ctx = zend_fetch_resource_ex(res, NULL, le_inflate))) {
|
||||
php_error_docref(NULL, E_WARNING, "Invalid zlib.inflate resource");
|
||||
RETURN_FALSE;
|
||||
if ((ctx = zend_fetch_resource(Z_RES_P(res), le_inflate_name, le_inflate)) == NULL) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
switch (flush_type) {
|
||||
@ -931,9 +931,9 @@ PHP_FUNCTION(inflate_add)
|
||||
break;
|
||||
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING,
|
||||
"flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH");
|
||||
RETURN_FALSE;
|
||||
zend_value_error(
|
||||
"Flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
/* Lazy-resetting the zlib stream so ctx->total_in remains available until the next inflate_add() call. */
|
||||
@ -1031,9 +1031,8 @@ PHP_FUNCTION(inflate_get_status)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!(ctx = zend_fetch_resource_ex(res, NULL, le_inflate))) {
|
||||
php_error_docref(NULL, E_WARNING, "Invalid zlib.inflate resource");
|
||||
RETURN_FALSE;
|
||||
if ((ctx = zend_fetch_resource(Z_RES_P(res), le_inflate_name, le_inflate)) == NULL) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_LONG(((php_zlib_context *) ctx)->status);
|
||||
@ -1052,9 +1051,8 @@ PHP_FUNCTION(inflate_get_read_len)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!(ctx = zend_fetch_resource_ex(res, NULL, le_inflate))) {
|
||||
php_error_docref(NULL, E_WARNING, "Invalid zlib.inflate resource");
|
||||
RETURN_FALSE;
|
||||
if ((ctx = zend_fetch_resource(Z_RES_P(res), le_inflate_name, le_inflate)) == NULL) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_LONG(ctx->total_in);
|
||||
@ -1080,24 +1078,24 @@ PHP_FUNCTION(deflate_init)
|
||||
level = zval_get_long(option_buffer);
|
||||
}
|
||||
if (level < -1 || level > 9) {
|
||||
php_error_docref(NULL, E_WARNING, "compression level (" ZEND_LONG_FMT ") must be within -1..9", level);
|
||||
RETURN_FALSE;
|
||||
zend_value_error("Compression level (" ZEND_LONG_FMT ") must be within -1..9", level);
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (options && (option_buffer = zend_hash_str_find(options, ZEND_STRL("memory"))) != NULL) {
|
||||
memory = zval_get_long(option_buffer);
|
||||
}
|
||||
if (memory < 1 || memory > 9) {
|
||||
php_error_docref(NULL, E_WARNING, "compression memory level (" ZEND_LONG_FMT ") must be within 1..9", memory);
|
||||
RETURN_FALSE;
|
||||
zend_value_error("Compression memory level (" ZEND_LONG_FMT ") must be within 1..9", memory);
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (options && (option_buffer = zend_hash_str_find(options, ZEND_STRL("window"))) != NULL) {
|
||||
window = zval_get_long(option_buffer);
|
||||
}
|
||||
if (window < 8 || window > 15) {
|
||||
php_error_docref(NULL, E_WARNING, "zlib window size (logarithm) (" ZEND_LONG_FMT ") must be within 8..15", window);
|
||||
RETURN_FALSE;
|
||||
zend_value_error("zlib window size (logarithm) (" ZEND_LONG_FMT ") must be within 8..15", window);
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (options && (option_buffer = zend_hash_str_find(options, ZEND_STRL("strategy"))) != NULL) {
|
||||
@ -1111,8 +1109,8 @@ PHP_FUNCTION(deflate_init)
|
||||
case Z_DEFAULT_STRATEGY:
|
||||
break;
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING, "strategy must be one of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY");
|
||||
RETURN_FALSE;
|
||||
zend_value_error("Strategy must be one of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!zlib_create_dictionary_string(options, &dict, &dictlen)) {
|
||||
@ -1125,9 +1123,8 @@ PHP_FUNCTION(deflate_init)
|
||||
case PHP_ZLIB_ENCODING_DEFLATE:
|
||||
break;
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING,
|
||||
"encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE");
|
||||
RETURN_FALSE;
|
||||
zend_value_error("Encoding mode must be ZLIB_ENCODING_RAW, ZLIB_ENCODING_GZIP or ZLIB_ENCODING_DEFLATE");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
ctx = ecalloc(1, sizeof(php_zlib_context));
|
||||
@ -1172,17 +1169,15 @@ PHP_FUNCTION(deflate_add)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (!(ctx = zend_fetch_resource_ex(res, NULL, le_deflate))) {
|
||||
php_error_docref(NULL, E_WARNING, "Invalid deflate resource");
|
||||
RETURN_FALSE;
|
||||
if ((ctx = zend_fetch_resource(Z_RES_P(res), le_deflate_name, le_deflate)) == NULL) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
switch (flush_type) {
|
||||
case Z_BLOCK:
|
||||
#if ZLIB_VERNUM < 0x1240L
|
||||
php_error_docref(NULL, E_WARNING,
|
||||
"zlib >= 1.2.4 required for BLOCK deflate; current version: %s", ZLIB_VERSION);
|
||||
RETURN_FALSE;
|
||||
zend_throw_error(NULL, "zlib >= 1.2.4 required for BLOCK deflate; current version: %s", ZLIB_VERSION);
|
||||
RETURN_THROWS();
|
||||
#endif
|
||||
case Z_NO_FLUSH:
|
||||
case Z_PARTIAL_FLUSH:
|
||||
@ -1192,9 +1187,9 @@ PHP_FUNCTION(deflate_add)
|
||||
break;
|
||||
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING,
|
||||
"flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH");
|
||||
RETURN_FALSE;
|
||||
zend_value_error(
|
||||
"Flush mode must be ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH, ZLIB_FULL_FLUSH, ZLIB_BLOCK or ZLIB_FINISH");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (in_len <= 0 && flush_type != Z_FINISH) {
|
||||
|
@ -73,7 +73,7 @@ function inflate_init(int $encoding, array $options = []) {}
|
||||
function inflate_add($context, string $encoded_data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false {}
|
||||
|
||||
/** @param resource $resource */
|
||||
function inflate_get_status($resource): int|false {}
|
||||
function inflate_get_status($resource): int {}
|
||||
|
||||
/** @param resource $resource */
|
||||
function inflate_get_read_len($resource): int|false {}
|
||||
function inflate_get_read_len($resource): int {}
|
||||
|
@ -114,7 +114,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_inflate_add, 0, 2, MAY_BE_STRING
|
||||
ZEND_ARG_TYPE_INFO(0, flush_mode, IS_LONG, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_inflate_get_status, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_inflate_get_status, 0, 1, IS_LONG, 0)
|
||||
ZEND_ARG_INFO(0, resource)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user