diff options
author | Pierre Joye <pierre.php@gmail.com> | 2016-07-19 15:51:43 +0700 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-07-19 16:46:25 +0200 |
commit | 522253bc9bb517dbd7782399c3bdaed1bbd92b8d (patch) | |
tree | 1df63c787b1a9e7e7925c3022064eaeac4739bf2 | |
parent | c3a095af1033b2504f666aaca291e2b6963e4e75 (diff) | |
download | php-git-522253bc9bb517dbd7782399c3bdaed1bbd92b8d.tar.gz |
improve fix #72558, while (u>=0) with unsigned int will always be true
(cherry picked from commit df0951508920d3e8400c99d058fa213397b752f8)
-rw-r--r-- | ext/gd/libgd/gd_interpolation.c | 7 |
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; } } |