common initializer: fix out of buffer access by the version info string.
authorHermet Park <chuneon.park@samsung.com>
Mon, 9 Aug 2021 04:20:27 +0000 (13:20 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 9 Aug 2021 06:36:58 +0000 (15:36 +0900)
String must be finished at termination charactor,
previous logic missed that handling, now fixed.

@Issue: https://github.com/Samsung/thorvg/issues/690

src/lib/tvgInitializer.cpp

index 0b63cf3..5dd5800 100644 (file)
@@ -50,18 +50,21 @@ static bool _buildVersionInfo()
     x = strchr(p, '.');
     if (!x) return false;
     strncpy(major, p, x - p);
+    major[x - p] = '\0';
     p = x + 1;
 
     char minor[3];
     x = strchr(p, '.');
     if (!x) return false;
     strncpy(minor, p, x - p);
+    minor[x - p] = '\0';
     p = x + 1;
 
     char micro[3];
     x = SRC + strlen(THORVG_VERSION_STRING);
     if (!x) return false;
     strncpy(micro, p, x - p);
+    micro[x - p] = '\0';
 
     char sum[7];
     snprintf(sum, sizeof(sum), "%s%s%s", major, minor, micro);