From 44e43a4738a45797457d6fe740bf33148a5e34c1 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Fri, 2 Sep 2016 11:33:17 +0200 Subject: [PATCH] fix mem leak --- ext/standard/image.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; } -- 2.50.1