summaryrefslogtreecommitdiff
path: root/ext/gd/libgd/gd_interpolation.c
diff options
context:
space:
mode:
authorPierre Joye <pierre.php@gmail.com>2016-07-19 13:39:46 +0700
committerPierre Joye <pierre.php@gmail.com>2016-07-19 13:39:46 +0700
commit511f07b747aadc352d9e3cc00e11de3fe84c7391 (patch)
tree9e60201375b4c65f0509da77add6bd76324046c2 /ext/gd/libgd/gd_interpolation.c
parent3c3980caa1437dce5d56e16b5c0ce7d3395b6266 (diff)
parent0fbcff1b35c1005b8d2cdfd33184867912d9d83a (diff)
downloadphp-git-511f07b747aadc352d9e3cc00e11de3fe84c7391.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: fix #72512, invalid read or write for palette image when invalid transparent index is used
Diffstat (limited to 'ext/gd/libgd/gd_interpolation.c')
-rw-r--r--ext/gd/libgd/gd_interpolation.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c
index 83319966f9..fb34982582 100644
--- a/ext/gd/libgd/gd_interpolation.c
+++ b/ext/gd/libgd/gd_interpolation.c
@@ -1244,7 +1244,13 @@ static gdImagePtr gdImageScaleBilinearPalette(gdImagePtr im, const unsigned int
if (new_img == NULL) {
return NULL;
}
- new_img->transparent = gdTrueColorAlpha(im->red[transparent], im->green[transparent], im->blue[transparent], im->alpha[transparent]);
+
+ if (transparent < 0) {
+ /* uninitialized */
+ new_img->transparent = -1;
+ } else {
+ new_img->transparent = gdTrueColorAlpha(im->red[transparent], im->green[transparent], im->blue[transparent], im->alpha[transparent]);
+ }
for (i=0; i < _height; i++) {
long j;