From 67a6df49bec5b8d0f3c46f11bc4cbbab1568388e Mon Sep 17 00:00:00 2001 From: "jiin.moon" Date: Wed, 21 Sep 2016 11:58:46 +0900 Subject: [PATCH] eet: sync _evas_canvas3d_eet_file_free with upstream Previous api can make a crash issue becasue of wrong access. Change-Id: I4cb01c275e0ed1c3bd66ba5f860470c8e1b18b69 --- src/lib/evas/canvas/evas_canvas3d_eet.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c b/src/lib/evas/canvas/evas_canvas3d_eet.c index 281f69d..33a6923 100644 --- a/src/lib/evas/canvas/evas_canvas3d_eet.c +++ b/src/lib/evas/canvas/evas_canvas3d_eet.c @@ -174,17 +174,25 @@ _evas_canvas3d_eet_descriptor_shutdown(void) void _evas_canvas3d_eet_file_free(void) { - free(eet_file->mesh->geometries[0].vertices); - free(eet_file->mesh->geometries); - free(eet_file->mesh->frames); - free(eet_file->mesh->materials[0].colors); - free(eet_file->mesh->materials); - free(eet_file->mesh); - free(eet_file->header->materials); - free(eet_file->header->geometries); - free(eet_file->header); - free(eet_file); - + if (eet_file) + { + if (eet_file->mesh) + { + free(eet_file->mesh->geometries[0].vertices); + free(eet_file->mesh->geometries); + free(eet_file->mesh->frames); + free(eet_file->mesh->materials[0].colors); + free(eet_file->mesh->materials); + free(eet_file->mesh); + } + if (eet_file->header) + { + free(eet_file->header->materials); + free(eet_file->header->geometries); + free(eet_file->header); + } + free(eet_file); + } _evas_canvas3d_eet_descriptor_shutdown(); eet_shutdown(); eina_shutdown(); -- 2.7.4