]> granicus.if.org Git - php/commitdiff
Fixed Bug #66890 imagescale segfault
authorRemi Collet <remi@php.net>
Wed, 12 Mar 2014 12:44:58 +0000 (13:44 +0100)
committerRemi Collet <remi@php.net>
Wed, 12 Mar 2014 12:44:58 +0000 (13:44 +0100)
zend_parse_parameters "l" expect long, not int

ext/gd/gd.c

index 1058eaee5cd6467a7dc412afb31a7a928d02b728..1b8366d58c3597ca6bb44d9b19bd1a4da0ca5154 100644 (file)
@@ -5102,12 +5102,16 @@ PHP_FUNCTION(imagescale)
        zval *IM;
        gdImagePtr im;
        gdImagePtr im_scaled;
-       int new_width, new_height = -1;
-       gdInterpolationMethod method = GD_BILINEAR_FIXED;
+       int new_width, new_height;
+       long tmp_w, tmp_h=-1, tmp_m = GD_BILINEAR_FIXED;
+       gdInterpolationMethod method;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|ll", &IM, &new_width, &new_height, &method) == FAILURE)  {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|ll", &IM, &tmp_w, &tmp_h, &tmp_m) == FAILURE)  {
                return;
        }
+       method = tmp_m;
+       new_width = tmp_w;
+       new_height = tmp_h;
 
        ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
        im_scaled = gdImageScale(im, new_width, new_height);