-
-
Save anonymous/73e16fbf1dfae02b4680ac12c1f31668 to your computer and use it in GitHub Desktop.
Patch for 72227
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit 7a1aac3343af85b4af4df5f8844946eaa27394ab | |
Author: Stanislav Malyshev <stas@php.net> | |
Date: Mon May 23 00:28:02 2016 -0700 | |
Fixed bug #72227: imagescale out-of-bounds read | |
Ported from https://github.com/libgd/libgd/commit/4f65a3e4eedaffa1efcf9ee1eb08f0b504fbc31a | |
diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c | |
index 6b7360a..a017498 100644 | |
--- a/ext/gd/libgd/gd_interpolation.c | |
+++ b/ext/gd/libgd/gd_interpolation.c | |
@@ -934,9 +934,6 @@ static inline LineContribType *_gdContributionsCalc(unsigned int line_size, unsi | |
double dTotalWeight = 0.0; | |
int iSrc; | |
- res->ContribRow[u].Left = iLeft; | |
- res->ContribRow[u].Right = iRight; | |
- | |
/* Cut edge points to fit in filter window in case of spill-off */ | |
if (iRight - iLeft + 1 > windows_size) { | |
if (iLeft < ((int)src_size - 1 / 2)) { | |
@@ -946,6 +943,9 @@ static inline LineContribType *_gdContributionsCalc(unsigned int line_size, unsi | |
} | |
} | |
+ res->ContribRow[u].Left = iLeft; | |
+ res->ContribRow[u].Right = iRight; | |
+ | |
for (iSrc = iLeft; iSrc <= iRight; iSrc++) { | |
dTotalWeight += (res->ContribRow[u].Weights[iSrc-iLeft] = scale_f_d * (*pFilter)(scale_f_d * (dCenter - (double)iSrc))); | |
} | |
diff --git a/ext/gd/tests/bug72227.phpt b/ext/gd/tests/bug72227.phpt | |
new file mode 100644 | |
index 0000000..6252be7 | |
--- /dev/null | |
+++ b/ext/gd/tests/bug72227.phpt | |
@@ -0,0 +1,15 @@ | |
+--TEST-- | |
+Bug #72227: imagescale out-of-bounds read | |
+--SKIPIF-- | |
+<?php | |
+ if (!extension_loaded('gd')) die("skip gd extension not available\n"); | |
+?> | |
+--FILE-- | |
+<?php | |
+ | |
+$img = imagecreatetruecolor ( 100, 100); | |
+imagescale($img, 13, 1, IMG_BICUBIC); | |
+?> | |
+DONE | |
+--EXPECT-- | |
+DONE | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment