evas 3d - fix mesh savers/loaders to not leave memory unset
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 20 May 2016 12:43:46 +0000 (21:43 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 20 May 2016 12:46:50 +0000 (21:46 +0900)
i've been gettign persistent evas test suite suite failures ffor a
while. annoying as i can't get 100% pass anymore. it's due to segv's
in evas test suite thanks to chunks of uninitialized memory in the
mesh loaders/saver code.

this fixes that

@fix

src/modules/evas/model_loaders/ply/evas_model_load_ply.c
src/modules/evas/model_savers/eet/evas_model_save_eet.c

index 971e951..35e011f 100644 (file)
@@ -191,9 +191,9 @@ void
 evas_model_load_file_ply(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
 {
    char *current = NULL, *map = NULL;
-   Evas_Model_Load_Save_Header header;
-   Evas_Model_Load_Save_Data data;
-   Evas_Model_Load_Save_Stride stride;
+   Evas_Model_Load_Save_Header header = { 0 };
+   Evas_Model_Load_Save_Data data = { 0 };
+   Evas_Model_Load_Save_Stride stride = { 0 };
 
    map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL);
    if (map == NULL)
index 8d82da5..ec1857a 100644 (file)
@@ -20,9 +20,9 @@ _set_geometry_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Data *mesh,
    int i;
    float *src;
    Evas_Canvas3D_Vertex_Eet *vertices =
-      malloc(sizeof(Evas_Canvas3D_Vertex_Eet) * mesh->vertex_count);
+      calloc(1, sizeof(Evas_Canvas3D_Vertex_Eet) * mesh->vertex_count);
    Evas_Canvas3D_Geometry_Eet *geometry =
-      malloc(sizeof(Evas_Canvas3D_Geometry_Eet));
+      calloc(1, sizeof(Evas_Canvas3D_Geometry_Eet));
    int *geometries = malloc(sizeof(int));
 
    if ((vertices == NULL) || (geometry == NULL))