Fix the buffer overflow issue in nanosvg 37/67637/1
authorXiangyin Ma <x1.ma@samsung.com>
Wed, 27 Apr 2016 14:59:51 +0000 (15:59 +0100)
committerXiangyin Ma <x1.ma@samsung.com>
Wed, 27 Apr 2016 14:59:51 +0000 (15:59 +0100)
Change-Id: I8d0f25c48bf1d5d307d7642b249e3baebcf63d41

dali-toolkit/internal/controls/renderers/svg/nanosvg/nanosvg.cc

index 820e619..e52cb15 100644 (file)
@@ -1244,7 +1244,12 @@ static NSVGcoordinate nsvg__parseCoordinateRaw(const char* str)
 {
     NSVGcoordinate coord = {0, NSVG_UNITS_USER};
     char units[32]="";
 {
     NSVGcoordinate coord = {0, NSVG_UNITS_USER};
     char units[32]="";
-    sscanf(str, "%f%s", &coord.value, units);
+
+    /**
+     * In the original file, the formatted data reading did not specify the string with width limitation.
+     * To prevent the possible overflow, we replace '%s' with '%32s' here.
+     */
+    sscanf(str, "%f%32s", &coord.value, units);
     coord.units = nsvg__parseUnits(units);
     return coord;
 }
     coord.units = nsvg__parseUnits(units);
     return coord;
 }