From: Anatol Belski Date: Fri, 2 Sep 2016 09:33:17 +0000 (+0200) Subject: fix mem leak X-Git-Tag: php-7.1.0RC2~52^2~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=44e43a4738a45797457d6fe740bf33148a5e34c1;p=php fix mem leak --- diff --git a/ext/standard/image.c b/ext/standard/image.c index f39c670979..c5616d1119 100644 --- a/ext/standard/image.c +++ b/ext/standard/image.c @@ -209,21 +209,27 @@ static struct gfxinfo *php_handle_swc(php_stream * stream) b = ecalloc(1, len + 1); - if (php_stream_seek(stream, 5, SEEK_CUR)) + if (php_stream_seek(stream, 5, SEEK_CUR)) { + efree(b); return NULL; + } - if (php_stream_read(stream, (char *) a, sizeof(a)) != sizeof(a)) + if (php_stream_read(stream, (char *) a, sizeof(a)) != sizeof(a)) { + efree(b); return NULL; + } if (uncompress(b, &len, a, sizeof(a)) != Z_OK) { /* failed to decompress the file, will try reading the rest of the file */ if (php_stream_seek(stream, 8, SEEK_SET)) { + efree(b); return NULL; } bufz = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0); if (!bufz) { + efree(b); return NULL; }