From 82b2c8df9e8adecc61b6ea95cf45f88e7e3bf79c Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Thu, 17 Apr 2014 21:18:32 +0200 Subject: [PATCH] evas: fix TGV loader to not leak ressource. CID 1195443. --- src/modules/evas/loaders/tgv/evas_image_load_tgv.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c index 49bbfc3528..e8119a7952 100644 --- a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c +++ b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c @@ -74,6 +74,12 @@ evas_image_load_file_open_tgv(Eina_File *f, Eina_Stringshare *key EINA_UNUSED, { Evas_Loader_Internal *loader; + if (eina_file_size_get(f) <= 16) + { + *error = EVAS_LOAD_ERROR_CORRUPT_FILE; + return NULL; + } + loader = calloc(1, sizeof (Evas_Loader_Internal)); if (!loader) { @@ -81,16 +87,11 @@ evas_image_load_file_open_tgv(Eina_File *f, Eina_Stringshare *key EINA_UNUSED, return NULL; } - if (eina_file_size_get(f) <= 16) - { - *error = EVAS_LOAD_ERROR_CORRUPT_FILE; - return NULL; - } - loader->f = eina_file_dup(f); if (!loader->f) { *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; + free(loader); return NULL; }