diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index c54f4f0c2a22..a43fdcc9a48b 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -448,6 +448,7 @@ static zend_never_inline zend_long ZEND_FASTCALL zendi_try_get_long(const zval * ZEND_ASSERT(Z_TYPE(dst) == IS_LONG); return Z_LVAL(dst); } + case IS_UNDEF: case IS_RESOURCE: case IS_ARRAY: *failed = true; diff --git a/ext/zlib/tests/gh22142.phpt b/ext/zlib/tests/gh22142.phpt new file mode 100644 index 000000000000..84397a4e85a9 --- /dev/null +++ b/ext/zlib/tests/gh22142.phpt @@ -0,0 +1,20 @@ +--TEST-- +GH-22142 (Assertion failure in zendi_try_get_long() on IS_UNDEF) +--EXTENSIONS-- +zlib +--FILE-- +getMessage(), PHP_EOL; +} + +?> +--EXPECT-- +deflate_init(): Argument #2 ($options) the value for option "level" must be of type int, null given