jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b13502f20af7ae4fc5c10cb024c7274e2c86d66c

commit b13502f20af7ae4fc5c10cb024c7274e2c86d66c
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Tue Dec 29 15:41:51 2015 +0900

    Evas 3d: Fix some potential crashes
    
    Those were happening before the previous patches.
---
 src/lib/evas/canvas/evas_canvas3d_eet.c            | 35 ++++++++++++----------
 .../evas/model_loaders/eet/evas_model_load_eet.c   |  4 +--
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c 
b/src/lib/evas/canvas/evas_canvas3d_eet.c
index aed6512..bae7856 100644
--- a/src/lib/evas/canvas/evas_canvas3d_eet.c
+++ b/src/lib/evas/canvas/evas_canvas3d_eet.c
@@ -189,25 +189,28 @@ _evas_canvas3d_eet_descriptor_shutdown()
 void
 _evas_canvas3d_eet_file_free(Evas_Canvas3D_File_Eet* eet_file)
 {
-   if (eet_file->mesh)
+   if (eet_file)
      {
-        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->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);
      }
 
-   if (eet_file->header)
-     {
-        free(eet_file->header->materials);
-        free(eet_file->header->geometries);
-        free(eet_file->header);
-     }
-
-   free(eet_file);
-   eet_file = NULL;
    _evas_canvas3d_eet_descriptor_shutdown();
    eet_shutdown();
    eina_shutdown();
diff --git a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c 
b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
index e049e2c..434852d 100644
--- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
+++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
@@ -115,9 +115,9 @@ evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, 
Eina_File *file)
 
    eet_close(ef);
 
-   if ((eet_file->mesh == NULL) || (eet_file->header == NULL))
+   if (!eet_file || !eet_file->mesh || !eet_file->header)
      {
-        ERR("Reading of file is failed.");
+        ERR("Failed to read model file");
         _evas_canvas3d_eet_file_free(eet_file);
         return;
      }

-- 


Reply via email to