mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02: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:
parent
e9d4fc184d
commit
dc7b661a60
4 changed files with 29 additions and 0 deletions
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
|
Loading…
Add table
Add a link
Reference in a new issue