From 191442c7ae42d878f3c124834274e40af9db65de Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 9 Aug 2021 13:20:27 +0900 Subject: [PATCH] common initializer: fix out of buffer access by the version info string. 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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/tvgInitializer.cpp b/src/lib/tvgInitializer.cpp index 0b63cf3a..5dd5800d 100644 --- a/src/lib/tvgInitializer.cpp +++ b/src/lib/tvgInitializer.cpp @@ -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);