tvg_loader: fix asan report.
authorHermet Park <chuneon.park@samsung.com>
Tue, 9 Nov 2021 08:11:10 +0000 (17:11 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Wed, 10 Nov 2021 01:43:08 +0000 (10:43 +0900)
revert c31c77c0fb884f79c6d52b5971f21be6fe4e92f2

memory mis-alignment is detected by asan tool.

src/loaders/tvg/tvgTvgBinInterpreter.cpp

index 5469494..383ae89 100644 (file)
@@ -87,8 +87,9 @@ static bool _parsePaintProperty(TvgBinBlock block, Paint *paint)
         }
         case TVG_TAG_PAINT_TRANSFORM: {
             if (block.length != SIZE(Matrix)) return false;
-            auto transform = (Matrix*)(block.data);
-            paint->transform(*transform);
+            Matrix matrix;
+            memcpy(&matrix, block.data, SIZE(Matrix));
+            paint->transform(matrix);
             return true;
         }
         case TVG_TAG_PAINT_CMP_TARGET: {
@@ -226,8 +227,9 @@ static unique_ptr<Fill> _parseShapeFill(const char *ptr, const char *end)
             }
             case TVG_TAG_FILL_TRANSFORM: {
                 if (!fillGrad || block.length != SIZE(Matrix)) return nullptr;
-                auto transform = (Matrix*)(block.data);
-                fillGrad->transform(*transform);
+                Matrix gradTransform;
+                memcpy(&gradTransform, block.data, SIZE(Matrix));
+                fillGrad->transform(gradTransform);
                 break;
             }
             default: {