mirror of
https://github.com/php/php-src.git
synced 2025-01-09 12:34:14 +08:00
- MFB: #39082, image* segfaults when used with only one argument
(introduced in 5.2+, no news entry)
This commit is contained in:
parent
527af42bd4
commit
7ecbbfc206
@ -74,7 +74,9 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
|
||||
ZEND_FETCH_RESOURCE(im, gdImagePtr, imgind, -1, "Image", phpi_get_le_gd());
|
||||
|
||||
if (argc > 1) {
|
||||
convert_to_string_ex(file);
|
||||
if (argc >= 2 && Z_TYPE_PP(file) != IS_NULL) {
|
||||
convert_to_string_ex(file);
|
||||
}
|
||||
fn = Z_STRVAL_PP(file);
|
||||
if (argc >= 3) {
|
||||
convert_to_long_ex(quality);
|
||||
@ -86,8 +88,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
|
||||
}
|
||||
}
|
||||
|
||||
if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
|
||||
|
||||
if (argc > 1 && (Z_TYPE_PP(file) != IS_NULL && ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))))) {
|
||||
PHP_GD_CHECK_OPEN_BASEDIR(fn, "Invalid filename");
|
||||
|
||||
fp = VCWD_FOPEN(fn, "wb");
|
||||
|
18
ext/gd/tests/bug39082.phpt
Normal file
18
ext/gd/tests/bug39082.phpt
Normal file
@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #39082 (Output image to stdout segfaults).
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('gd')) {
|
||||
die("skip gd extension not available\n");
|
||||
}
|
||||
if (!GD_BUNDLED) {
|
||||
die('skip external GD libraries may fail');
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$im = imagecreatetruecolor(1,1);
|
||||
imagegif($im);
|
||||
?>
|
||||
--EXPECTF--
|
||||
GIF87a%s
|
Loading…
Reference in New Issue
Block a user