raster pushed a commit to branch master.

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

commit 8e311db414950e399099acc1c0af620ee2f37b52
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Jul 24 13:26:28 2017 +0900

    edje_cc - make svg loader (still beta) handle out of memory nicely
    
    print ERR and abort.
---
 src/bin/edje/edje_svg_loader.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/bin/edje/edje_svg_loader.c b/src/bin/edje/edje_svg_loader.c
index beafb48a59..65e17f1094 100644
--- a/src/bin/edje/edje_svg_loader.c
+++ b/src/bin/edje/edje_svg_loader.c
@@ -1113,7 +1113,15 @@ _attr_parse_polygon_points(const char *str, double 
**points, int *point_count)
         tmp[tmp_count++] = num;
         if (tmp_count == 50)
           {
-             point_array = realloc(point_array, (count + tmp_count) * 
sizeof(double));
+             double *tmp;
+
+             tmp = realloc(point_array, (count + tmp_count) * sizeof(double));
+             if (!tmp)
+               {
+                  ERR("allocation for point array failed. out of memory");
+                  abort();
+               }
+             point_array = tmp;
              memcpy(&point_array[count], tmp, tmp_count * sizeof(double));
              count += tmp_count;
              tmp_count = 0;
@@ -1122,7 +1130,15 @@ _attr_parse_polygon_points(const char *str, double 
**points, int *point_count)
 
    if (tmp_count > 0)
      {
-        point_array = realloc(point_array, (count + tmp_count) * 
sizeof(double));
+        double *tmp;
+
+        tmp = realloc(point_array, (count + tmp_count) * sizeof(double));
+        if (!tmp)
+          {
+             ERR("allocation for point array failed. out of memory");
+             abort();
+          }
+        point_array = tmp;
         memcpy(&point_array[count], tmp, tmp_count * sizeof(double));
         count += tmp_count;
      }

-- 


Reply via email to