mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix GH-17703: imagescale both width and heigh set with negative values.
Throwing a ValueError in this particular case. close GH-17708
This commit is contained in:
4
NEWS
4
NEWS
@@ -18,6 +18,10 @@ PHP NEWS
|
||||
. Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of
|
||||
Dom\HTML_NO_DEFAULT_NS). (nielsdos)
|
||||
|
||||
- GD:
|
||||
. Fixed bug GH-17703 (imagescale with both width and height negative values
|
||||
triggers only an Exception on width). (David Carlier)
|
||||
|
||||
- MBString:
|
||||
. Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).
|
||||
(cmb)
|
||||
|
||||
@@ -627,6 +627,9 @@ PHP 8.4 UPGRADE NOTES
|
||||
. DOMDocument::registerNodeClass() now has a tentative return type of true.
|
||||
Previously, the return type was bool but only true could be returned in practice.
|
||||
|
||||
- GD:
|
||||
. imagescale now throws a ValueError when both width and height arguments are negative.
|
||||
|
||||
- Hash:
|
||||
. Changed the return type of hash_update() to true. It was already the case that only
|
||||
true could be returned, but the stub was not updated yet.
|
||||
|
||||
@@ -3981,6 +3981,11 @@ PHP_FUNCTION(imagescale)
|
||||
|
||||
im = php_gd_libgdimageptr_from_zval_p(IM);
|
||||
|
||||
if (tmp_h < 0 && tmp_w < 0) {
|
||||
zend_value_error("Argument #2 ($width) and argument #3 ($height) cannot be both negative");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (tmp_h < 0 || tmp_w < 0) {
|
||||
/* preserve ratio */
|
||||
long src_x, src_y;
|
||||
|
||||
17
ext/gd/tests/gh17703.phpt
Normal file
17
ext/gd/tests/gh17703.phpt
Normal file
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
GH-17703 both width and height value being negative triggers ValueError on width.
|
||||
--EXTENSIONS--
|
||||
gd
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$img = imagecreatetruecolor ( 256, 1);
|
||||
|
||||
try {
|
||||
imagescale($img, -1, -1, 0);
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Argument #2 ($width) and argument #3 ($height) cannot be both negative
|
||||
Reference in New Issue
Block a user