summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Joye <pierre.php@gmail.com>2016-07-19 15:51:43 +0700
committerFerenc Kovacs <tyra3l@gmail.com>2016-07-21 02:16:37 +0200
commit8fa9d1ce28f3a894b104979df30d0b65e0f21107 (patch)
tree9b749099783f49ade5d0e284d5eb9e0a42a9bb89
parenta41745061b77398663eaa5721a804568f8fc217b (diff)
downloadphp-git-8fa9d1ce28f3a894b104979df30d0b65e0f21107.tar.gz
improve fix #72558, while (u>=0) with unsigned int will always be true
-rw-r--r--ext/gd/libgd/gd_interpolation.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c
index 9481e3fd1d..9a7789e365 100644
--- a/ext/gd/libgd/gd_interpolation.c
+++ b/ext/gd/libgd/gd_interpolation.c
@@ -904,11 +904,12 @@ static inline LineContribType * _gdContributionsAlloc(unsigned int line_length,
res->ContribRow[u].Weights = (double *) gdMalloc(windows_size * sizeof(double));
}
if (overflow_error == 1 || res->ContribRow[u].Weights == NULL) {
+ unsigned int i;
u--;
- while (u >= 0) {
- gdFree(res->ContribRow[u].Weights);
- u--;
+ for (i=0;i<=u;i++) {
+ gdFree(res->ContribRow[i].Weights);
}
+ gdFree(res);
return NULL;
}
}