[php-src] master: zlib: Add test with invalid levels

Gina Peter Banyard <[email protected]>
Newsgroups gmane.comp.php.cvs.general
Message-ID <[email protected]>
Author: Gina Peter Banyard (Girgias)
Date: 2026-08-10T19:23:47+01:00

Commit: https://github.com/php/php-src/commit/1cf82bef0a7e3c85b40eff2539ab6c9878dcd872
Raw diff: https://github.com/php/php-src/commit/1cf82bef0a7e3c85b40eff2539ab6c9878dcd872.diff

zlib: Add test with invalid levels

Changed paths:
  A  ext/zlib/tests/zlib_wrapper_level_errors.phpt


Diff:

diff --git a/ext/zlib/tests/zlib_wrapper_level_errors.phpt b/ext/zlib/tests/zlib_wrapper_level_errors.phpt
new file mode 100644
index 000000000000..cc586da568b1
--- /dev/null
+++ b/ext/zlib/tests/zlib_wrapper_level_errors.phpt
@@ -0,0 +1,45 @@
+--TEST--
+compress.zlib:// wrapper with invalid compression level
+--EXTENSIONS--
+zlib
+--SKIPIF--
+<?php
+in_array('compress.zlib', stream_get_wrappers()) || die('skip No zlib wrapper');
+?>
+--FILE--
+<?php declare(strict_types=1);
+
+$filename = tempnam(sys_get_temp_dir(), "php-zlib-test-wrapper-level-error");
+$thisfile = file_get_contents(__FILE__);
+
+function write_at_level(mixed $level) {
+	global $filename, $thisfile;
+
+	$ctx = stream_context_create();
+	stream_context_set_option($ctx, 'zlib', 'level', $level);
+	$fp = fopen("compress.zlib://$filename", 'w', false, $ctx);
+	for ($i = 0; $i < 10; ++$i) {
+		fwrite($fp, $thisfile);
+	}
+	fclose($fp);
+	$size = filesize($filename);
+	unlink($filename);
+	return $size;
+}
+
+$size_string_type = write_at_level("not a number");
+var_dump($size_string_type);
+
+$size_array_type = write_at_level(new stdClass());
+var_dump($size_array_type);
+
+$size_oob = write_at_level(10000);
+var_dump($size_oob);
+
+?>
+--EXPECTF--
+int(%d)
+
+Warning: Object of class stdClass could not be converted to int in %s on line %d
+int(%d)
+int(0)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.