diff options
| author | Sascha Schumann <sas@php.net> | 2003-04-03 19:18:57 +0000 |
|---|---|---|
| committer | Sascha Schumann <sas@php.net> | 2003-04-03 19:18:57 +0000 |
| commit | c2e24238384745c94934f052f5d4e2a9568e2241 (patch) | |
| tree | de89991bb800fd53e3e7a4e7b984661ff1d35640 /ext/gd | |
| parent | e3f1641527407cd04aeb97f1f42dd78c54aef588 (diff) | |
| download | php-git-c2e24238384745c94934f052f5d4e2a9568e2241.tar.gz | |
Fix segfaults in imagecreate/imagecreatetruecolor
Diffstat (limited to 'ext/gd')
| -rw-r--r-- | ext/gd/gd.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 1db01779e8..53fc513ea1 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -800,6 +800,12 @@ PHP_FUNCTION(imagecreatetruecolor) convert_to_long_ex(x_size); convert_to_long_ex(y_size); + if (Z_LVAL_PP(x_size) <= 0 + || Z_LVAL_PP(y_size) <= 0) { + php_error(E_WARNING, "invalid image dimensions"); + RETURN_FALSE; + } + im = gdImageCreateTrueColor(Z_LVAL_PP(x_size), Z_LVAL_PP(y_size)); ZEND_REGISTER_RESOURCE(return_value, im, le_gd); @@ -1243,6 +1249,12 @@ PHP_FUNCTION(imagecreate) convert_to_long_ex(x_size); convert_to_long_ex(y_size); + if (Z_LVAL_PP(x_size) <= 0 + || Z_LVAL_PP(y_size) <= 0) { + php_error(E_WARNING, "invalid image dimensions"); + RETURN_FALSE; + } + im = gdImageCreate(Z_LVAL_PP(x_size), Z_LVAL_PP(y_size)); ZEND_REGISTER_RESOURCE(return_value, im, le_gd); |
