From 6ba2bc8eb33ff0e554e3afb7318f036bec274e96 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 9 Nov 2021 17:11:10 +0900 Subject: [PATCH] tvg_loader: fix asan report. revert c31c77c0fb884f79c6d52b5971f21be6fe4e92f2 memory mis-alignment is detected by asan tool. --- src/loaders/tvg/tvgTvgBinInterpreter.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/loaders/tvg/tvgTvgBinInterpreter.cpp b/src/loaders/tvg/tvgTvgBinInterpreter.cpp index 5469494e..383ae89b 100644 --- a/src/loaders/tvg/tvgTvgBinInterpreter.cpp +++ b/src/loaders/tvg/tvgTvgBinInterpreter.cpp @@ -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 _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: {