diff options
author | Stanislav Malyshev <stas@php.net> | 2016-06-21 00:25:49 -0700 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2016-06-21 00:25:49 -0700 |
commit | 8705254f2d4f73e22f150bc501fa534e7742754b (patch) | |
tree | ce7ed8773821b35004011586976263da6991a331 /ext/gd/libgd/gd_gd2.c | |
parent | d002037dc1304f3b936593cb1907cfcf8baf8a06 (diff) | |
parent | 2a65544f788654946bfe49e114efa748246fdd52 (diff) | |
download | php-git-8705254f2d4f73e22f150bc501fa534e7742754b.tar.gz |
Merge branch 'PHP-7.0.8' into PHP-7.0
* PHP-7.0.8:
iFixed bug #72446 - Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow
update NEWS
fix tests
fix build
Fix bug #72455: Heap Overflow due to integer overflows
Fix bug #72434: ZipArchive class Use After Free Vulnerability in PHP's GC algorithm and unserialize
Fixed ##72433: Use After Free Vulnerability in PHP's GC algorithm and unserialize
Fix bug #72407: NULL Pointer Dereference at _gdScaleVert
Fix bug #72402: _php_mb_regex_ereg_replace_exec - double free
Fix bug #72298 pass2_no_dither out-of-bounds access
Fixed #72339 Integer Overflow in _gd2GetHeader() resulting in heap overflow
Fix bug #72262 - do not overflow int
Fix bug #72400 and #72403 - prevent signed int overflows for string lengths
Fix bug #72275: don't allow smart_str to overflow int
Fix bug #72340: Double Free Courruption in wddx_deserialize
Fix bug #72321 - use efree() for emalloc allocation
5.6.23RC1
fix NEWS
set versions
Conflicts:
configure.in
main/php_version.h
Diffstat (limited to 'ext/gd/libgd/gd_gd2.c')
-rw-r--r-- | ext/gd/libgd/gd_gd2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/gd/libgd/gd_gd2.c b/ext/gd/libgd/gd_gd2.c index 6726fee826..e954aafa68 100644 --- a/ext/gd/libgd/gd_gd2.c +++ b/ext/gd/libgd/gd_gd2.c @@ -138,11 +138,18 @@ static int _gd2GetHeader(gdIOCtxPtr in, int *sx, int *sy, int *cs, int *vers, in if (gd2_compressed(*fmt)) { nc = (*ncx) * (*ncy); GD2_DBG(php_gd_error("Reading %d chunk index entries", nc)); + if (overflow2(sizeof(t_chunk_info), nc)) { + goto fail1; + } sidx = sizeof(t_chunk_info) * nc; if (sidx <= 0) { goto fail1; } cidx = gdCalloc(sidx, 1); + if (cidx == NULL) { + goto fail1; + } + for (i = 0; i < nc; i++) { if (gdGetInt(&cidx[i].offset, in) != 1) { gdFree(cidx); |